Impossible to call add_child because parent is busy. La sortie de l'arbre n'arrive pas seulement quand la balle est detruite, mais aussi quand le jeu se coupe ou quand le niveau est nettoye. Donc il faut un signal dedie pour cela.
@@ -2,6 +2,8 @@ class_name Balle
extends CharacterBody2D
+signal sortie_ecran
+
const ratio_diff_angle: float = PI * 0.005 # radian / px
const ascension_min: float = 10.0 # px / sec
@@ -43,4 +45,5 @@ func _auto_detruire() -> void:
func _quand_verificateur_visibilite_detecte_sortie_ecran():
+ sortie_ecran.emit()
_auto_detruire()
@@ -11,7 +11,7 @@ func _ready() -> void:
func lancer_balle() -> void:
var nouvelle_balle: Balle = SceneBalle.instantiate()
add_child(nouvelle_balle)
- nouvelle_balle.tree_exited.connect(_quand_balle_sort)
+ nouvelle_balle.sortie_ecran.connect(_quand_balle_sort)
func _quand_balle_sort() -> void: