@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)