123456789101112131415161718192021222324252627282930313233343536373839404142 |
- @icon("res://composants/objets/lanceur/IconeLanceur.svg")
- class_name Lanceur
- extends Node2D
- ## Gere les balles du jeu.
- signal partie_perdue
- signal nb_balles_change(int)
- const SceneBalle = preload("res://composants/objets/balle/balle.tscn")
- ## Quand il ne reste plus de balle, la partie est perdue !
- @export_range(1, 10) var nombre_de_balles: int = 1
- func _ready() -> void:
- lancer_balle()
- ## S'il en reste en reserve, lance une balle
- func lancer_balle() -> void:
- if nombre_de_balles <= 0:
- partie_perdue.emit()
- return # on ne lance pas la balle
- _decrementer_nombre_de_balles()
- var nouvelle_balle: Balle = SceneBalle.instantiate()
- add_child.call_deferred(nouvelle_balle) # Appeler plus tard sinon Godot pas content
- func incrementer_nombre_de_balles() -> void:
- nombre_de_balles += 1
- nb_balles_change.emit(nombre_de_balles)
- func _quand_balle_detruite() -> void:
- lancer_balle()
- func _decrementer_nombre_de_balles() -> void:
- nombre_de_balles -= 1
- nb_balles_change.emit(nombre_de_balles)
|