road-rage-tank/enemy_spawner.gd

28 lines
606 B
GDScript

extends Path3D
var clock := 0.
var count := 5.0
func _get_spawn_pos() -> Vector3:
return curve.samplef(randf_range(0, curve.point_count))
func _spawn_police_car(p: Vector3) -> void:
var car: Node3D = preload("police_car.tscn").instantiate()
car.position = p + Vector3.UP * 0.1
add_sibling(car)
func _process(delta: float) -> void:
clock -= delta
if clock <= 0:
clock = 5.
var ps: Array[Vector3]
while ps.size() < count:
var p := _get_spawn_pos()
if ps.any(func(_p): return _p.distance_to(p) < 3.):
break
ps.push_back(p)
for p in ps:
_spawn_police_car(p)
count += .6