Münzsammler: Übrige Münzen
Teil des Abschnitts Signale und Kollisionen der Godot-Journey von Coddy. Lektion 26 von 27.
Main sollte wissen, wie viele Münzen noch übrig sind. Speichere die Anzahl in einer Variable am Anfang von main.gd. Zähle die Gruppe einmal zu Beginn und ziehe dann für jede eingesammelte Münze eins ab:
var coins_left = 0
func _ready():
coins_left = get_tree().get_nodes_in_group("coins").size()Warum nicht die Gruppe in _on_coin_collected zählen? Die Münze sendet collected, kurz bevor sie sich selbst freigibt. Sie bleibt bis zum Ende des Frames in ihrer Gruppe, daher würde sie bei der Zählung noch mitgezählt.
Eine Variable ändert sich nur, wenn du sie änderst.
Aufgabe
MittelLass Main die übrigen Münzen zählen.
- Füge am Anfang von
main.gdvar coins_left = 0hinzu und setze den Wert in_ready()auf die Größe der Gruppecoins. - Ziehe in
_on_coin_collected()eins ab und gib es anstelle vonGot a coin!aus:print("Coins left: ", coins_left).
Klicke auf „Spielen“ und nimm eine Münze: In der Konsole wird Coins left: 5 angezeigt. Klicke anschließend auf „Prüfen“.
Probier es selbst
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!")
Alle Lektionen in Signale und Kollisionen
6Projekt: Münzsammler
Münzsammler: GehenMünzsammler: MünzenÜbe selbstständig: Godot-Playground