Viele Stacheln, eine Funktion
Teil des Abschnitts Signale und Kollisionen der Godot-Journey von Coddy. Lektion 21 von 27.
Ein Level kann viele Stacheln haben, die alle dasselbe tun. Verbinde sie alle mit einer Schleife über ihre Gruppe mit einer Funktion:
for spike in get_tree().get_nodes_in_group("spikes"):
spike.body_entered.connect(_on_spike_body_entered)Bei jedem Durchlauf der Schleife wird das body_entered des nächsten Stachels verbunden. Welche Reihe du auch berührst, dieselbe Funktion wird ausgeführt und erhält deinen Körper.
Eine fünfte Reihe, die der Gruppe hinzugefügt wird, funktioniert ohne neuen Code. Die vier Reihen hier gehören zur Gruppe spikes.
Aufgabe
MittelSorge dafür, dass dich jede Stachelreihe zurückschickt.
- Ersetze in
_ready()die einzelneconnect-Zeile durch einefor-Schleife über die Gruppespikes. - Verbinde innerhalb der Schleife für jeden Knoten
body_enteredmit_on_spike_body_entered.
Drücke „Spielen“ und laufe in beliebige Stacheln hinein: Du bist wieder am Anfang. Klicke dann auf „Prüfen“.
Probier es selbst
extends Node2D
func _ready():
$Spikes1.body_entered.connect(_on_spike_body_entered)
func _on_spike_body_entered(body):
body.position = Vector2(80, 280)
Alle Lektionen in Signale und Kollisionen
Übe selbstständig: Godot-Playground