Collecteur de pièces : Pièces restantes
Fait partie de la section Signaux et collisions du Journey Godot de Coddy. Leçon 26 sur 27.
Main doit savoir combien de pièces il reste. Stocke le nombre dans une variable en haut de main.gd. Compte le groupe une fois au début, puis soustrais-en une pour chaque pièce ramassée :
var coins_left = 0
func _ready():
coins_left = get_tree().get_nodes_in_group("coins").size()Pourquoi ne pas compter le groupe dans _on_coin_collected ? La pièce envoie collected juste avant de se libérer. Elle reste dans son groupe jusqu'à la fin de la frame, le compte l'inclurait donc.
Une variable ne change que si tu la modifies.
Défi
MoyenFais en sorte que Main compte les pièces restantes.
- En haut de
main.gd, ajoutevar coins_left = 0, puis dans_ready(), définis sa valeur sur le nombre d’éléments du groupecoins. - Dans
_on_coin_collected(), soustrais-en une et affiche le résultat à la place deGot a coin!:print("Coins left: ", coins_left).
Appuie sur « Jouer » et prends une pièce : la Console affiche Coins left: 5. Puis clique sur « Vérifier ».
Essayez vous-même
extends Node2D
func _ready():
for coin in get_tree().get_nodes_in_group("coins"):
coin.collected.connect(_on_coin_collected)
func _on_coin_collected():
print("Got a coin!")
Toutes les leçons de Signaux et collisions
6Projet : Collecteur de pièces
Collecteur de pièces : MarcherCollecteur de pièces : PiècesEntraînez-vous par vous-même : Playground Godot