28 lines
631 B
GDScript
28 lines
631 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("res://enemies/police_car/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
|