Menu
CoddyTech

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_entered und body_exited: Ein Body ist hineingekommen oder hat den Bereich verlassen. Bodies sind feste Dinge wie CharacterBody2D und StaticBody2D.
  • area_entered und area_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.

challenge icon

Aufgabe

Einfach

Lass den Korb die fallenden Sterne bemerken.

  1. Die Sterne sind Bereiche, keine Körper. Verbinde in _ready() area_entered anstelle von body_entered.
  2. Behalte _on_star_caught als 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