Bereiche treffen auf Bereiche
Teil des Abschnitts Signale und Kollisionen der Godot-Journey von Coddy. Lektion 6 von 27.
Die Nodes von Godot haben Signale eingebaut. Ein Area2D hat vier Signale, die du oft verwenden wirst:
body_enteredundbody_exited: Ein Body ist hineingekommen oder hat den Bereich verlassen. Bodies sind feste Dinge wieCharacterBody2DundStaticBody2D.area_enteredundarea_exited: Ein anderer Bereich ist hineingekommen oder hat ihn verlassen.
Ein Bereich sendet niemals body_entered für einen anderen Bereich. Die fallenden Sterne sind Bereiche, deshalb braucht der Korb area_entered:
func _ready():
area_entered.connect(_on_star_caught)Die Funktion erhält den Bereich, der hineingekommen ist, also nimmt sie einen Wert entgegen, zum Beispiel _on_body_entered(body). Du kannst ihn beliebig nennen.
Aufgabe
EinfachLass den Korb die fallenden Sterne bemerken.
- Die Sterne sind Bereiche, keine Körper. Verbinde in
_ready()area_enteredanstelle vonbody_entered. - Behalte
_on_star_caughtals Funktion bei.
Drücke „Spielen“: Die Konsole zeigt zweimal Caught a star! an, einmal pro Stern. Drücke dann „Prüfen“.
Probier es selbst
extends Area2D
func _ready():
body_entered.connect(_on_star_caught)
func _on_star_caught(star):
print("Caught a star!")
Alle Lektionen in Signale und Kollisionen
Übe selbstständig: Godot-Playground