Menu
CoddyTech

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.

challenge icon

Défi

Moyen

Fais en sorte que Main compte les pièces restantes.

  1. En haut de main.gd, ajoute var coins_left = 0, puis dans _ready(), définis sa valeur sur le nombre d’éléments du groupe coins.
  2. Dans _on_coin_collected(), soustrais-en une et affiche le résultat à la place de Got 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

Entraînez-vous par vous-même : Playground Godot