Münzsammler: Gesammelt
Teil des Abschnitts Signale und Kollisionen der Godot-Journey von Coddy. Lektion 25 von 27.
main.gd enthält die Regeln des Spiels, zum Beispiel, wie viele Münzen noch übrig sind. Main muss von jeder Münze erfahren, die du einsammelst. Deshalb sendet jede Münze ein Signal, und Main hört auf alle diese Signale.
Deklariere in coin.gd signal collected und löse das Signal aus, unmittelbar bevor die Münze sich selbst freigibt:
if body.is_in_group("player"):
collected.emit()
queue_free()Verbinde in main.gd jede Münze in der Gruppe, so wie du es mit den Stacheln gemacht hast:
for coin in get_tree().get_nodes_in_group("coins"):
coin.collected.connect(_on_coin_collected)Das funktioniert in Mains _ready(), weil Godot die untergeordneten Elemente vor ihrem übergeordneten Element bereit macht. Zu diesem Zeitpunkt ist jede Münze der Gruppe beigetreten.
Aufgabe
MittelDiesmal sind zwei Skripte nötig:
coin.gd: Deklarieresignal collectedund löse es vorqueue_free()aus.main.gd: Verbinde in_ready()diecollected-Signale aller Münzen mit einer neuen Funktion_on_coin_collected(), dieGot a coin!ausgibt.
Probier es selbst
extends Node2D
func _ready():
pass
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Signale und Kollisionen
6Projekt: Münzsammler
Münzsammler: GehenMünzsammler: MünzenÜbe selbstständig: Godot-Playground