Menu
CoddyTech

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.

challenge icon

Aufgabe

Mittel

Lass Main jede aufgesammelte Münze hören.

  1. Erkläre in coin.gd signal collected und löse es vor queue_free() aus.
  2. Verbinde in main.gds _ready() die collected-Signale aller Münzen mit einer neuen Funktion _on_coin_collected().
  3. 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

Übe selbstständig: Godot-Playground