Spawner.gd 540 B

123456789101112131415161718192021222324
  1. extends Node2D
  2. var BallScene: PackedScene = preload("res://slides/204/physics_demo/Ball.tscn")
  3. @export var dispersion_scale : Vector2 = Vector2.ONE
  4. @export var delay := 1.0
  5. func _ready():
  6. spawn()
  7. func spawn():
  8. var ball: PhysicsBody2D = BallScene.instantiate()
  9. var dispersion = Vector2(randf_range(-1.0, 1.0) * dispersion_scale.x, randf_range(-1.0, 1.0) * dispersion_scale.y)
  10. ball.position = dispersion
  11. add_child(ball)
  12. get_tree().create_timer(delay).connect("timeout", _on_delay_time_out)
  13. func _on_delay_time_out():
  14. spawn()