Menu
CoddyTech

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.

challenge icon

Aufgabe

Mittel

Lass Main die übrigen Münzen zählen.

  1. Füge am Anfang von main.gd var coins_left = 0 hinzu und setze den Wert in _ready() auf die Größe der Gruppe coins.
  2. Ziehe in _on_coin_collected() eins ab und gib es anstelle von Got 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

Übe selbstständig: Godot-Playground