Launcher.gd 622 B

1234567891011121314151617181920212223242526272829
  1. extends Node2D
  2. enum State {
  3. READY,
  4. FIRING,
  5. WAITING,
  6. }
  7. const BULLET_SPEED = 200.0
  8. var _ballScene = preload("res://scenes/Ball.tscn")
  9. onready var target = $Target
  10. onready var source = $Source
  11. onready var current_state = State.WAITING
  12. func _input(event):
  13. if event is InputEventMouseButton and event.is_pressed() :
  14. current_state = State.FIRING
  15. target.position = event.position
  16. shoot()
  17. func shoot():
  18. var bullet = _ballScene.instance()
  19. bullet.position = source.position
  20. bullet.linear_velocity = (target.position - source.position).normalized()
  21. bullet.linear_velocity *= BULLET_SPEED
  22. add_child(bullet)