Pièces restantes
Fait partie de la section Signaux et collisions du Journey Godot de Coddy. Leçon 17 sur 27.
Chaque pièce affiche ici le nombre de pièces restantes quand tu la ramasses. La première affiche Coins left: 3, mais il n’en reste que deux.
queue_free() attend la fin de la frame. Jusque-là, la pièce fait toujours partie de son groupe, donc elle se compte elle-même.
Retire d’abord la pièce du groupe avec remove_from_group(). Cela se fait immédiatement :
func _on_body_entered(body):
remove_from_group("coins")
print("Coins left: ", get_tree().get_nodes_in_group("coins").size())
queue_free()Les lignes s’exécutent de haut en bas, donc remove_from_group doit précéder le comptage.
Défi
MoyenCorrige le décompte des pièces restantes.
- Dans
_on_body_entered, retire la pièce du groupecoinsavant la ligneprint. - Utilise
remove_from_group().
Appuie sur « Jouer » et ramasse les trois pièces : la console affiche Coins left: 2, puis Coins left: 1, puis Coins left: 0. Ensuite, appuie sur « Vérifier ».
Essayez vous-même
extends Area2D
func _ready():
add_to_group("coins")
body_entered.connect(_on_body_entered)
func _on_body_entered(body):
print("Coins left: ", get_tree().get_nodes_in_group("coins").size())
queue_free()
Toutes les leçons de Signaux et collisions
Entraînez-vous par vous-même : Playground Godot