lanceur.gd 749 B

123456789101112131415161718192021222324252627282930313233
  1. extends Node2D
  2. signal partie_perdue
  3. signal nb_balles_change(int)
  4. const SceneBalle = preload("res://composants/objets/balle/balle.tscn")
  5. ## Quand il ne reste plus de balle, la partie est perdue !
  6. @export_range(1, 10) var nombre_de_balles: int = 1
  7. func _ready() -> void:
  8. lancer_balle()
  9. func lancer_balle() -> void:
  10. if nombre_de_balles <= 0:
  11. partie_perdue.emit()
  12. return # on ne lance pas la balle
  13. _decrementer_nombre_de_balles()
  14. var nouvelle_balle: Balle = SceneBalle.instantiate()
  15. add_child.call_deferred(nouvelle_balle) # Appeler plus tard sinon Godot pas content
  16. func _quand_balle_detruite() -> void:
  17. lancer_balle()
  18. func _decrementer_nombre_de_balles() -> void:
  19. nombre_de_balles -= 1
  20. nb_balles_change.emit(nombre_de_balles)