Einen Knoten entfernen
Teil des Abschnitts Signale und Kollisionen der Godot-Journey von Coddy. Lektion 15 von 27.
Eine Münze, die du aufgesammelt hast, sollte verschwunden und nicht versteckt sein, damit nichts sie erneut berühren kann. queue_free() entfernt einen Knoten und alle seine Kinder aus dem Spiel:
func _on_body_entered(body):
queue_free()Wird queue_free() für sich allein aufgerufen, entfernt es den Knoten, auf dem sich das Skript befindet, hier also die Münze.
Der Name enthält „queue“, weil Godot den Knoten am Ende des aktuellen Frames freigibt, nicht sofort. Bis dahin kann anderer Code den Knoten noch verwenden. In einigen Lektionen wirst du sehen, warum das wichtig ist.
Aufgabe
EinfachLass die Münze verschwinden, wenn du gegen sie läufst.
- Ersetze in
_on_body_enteredpass. - Gib die Münze mit
queue_free()frei.
Drücke „Spielen“ und laufe gegen die Münze: Sie ist verschwunden. Drücke dann „Prüfen“.
Probier es selbst
extends Area2D
func _ready():
body_entered.connect(_on_body_entered)
func _on_body_entered(body):
pass
Alle Lektionen in Signale und Kollisionen
1Bereiche
Bereiche erkennen KörperEin Signal verbindenWer ist hereingekommen?Nur der SpielerEinen Bereich verlassen4Dinge entfernen
Einen Knoten entfernenEine Tür, die sich öffnetÜbrig gebliebene MünzenDen Weg freimachenÜbe selbstständig: Godot-Playground