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 Signale.
Definiere in coin.gd signal collected und sende das Signal direkt 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, wie du es bei den Stacheln getan 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
MittelLass Main jede aufgesammelte Münze hören.
- Erkläre in
coin.gdsignal collectedund löse es vorqueue_free()aus. - Verbinde in
main.gds_ready()diecollected-Signale aller Münzen mit einer neuen Funktion_on_coin_collected(). - Lass diese Funktion
Got a coin!ausgeben.
Drücke „Spielen“ und gehe über eine Münze: Die Konsole zeigt Got a coin!. Drücke dann „Prüfen“.
Probier es selbst
extends Node2D
func _ready():
pass
Alle Lektionen in Signale und Kollisionen
6Projekt: Münzsammler
Münzsammler: GehenMünzsammler: MünzenÜbe selbstständig: Godot-Playground