Ebenen und Masken
Teil des Abschnitts Signale und Kollisionen der Godot-Journey von Coddy. Lektion 22 von 27.
Körper und Bereiche befinden sich auf nummerierten Kollisionsschichten. Für jedes gibt es zwei Einstellungen:
collision_layer: die Schichten, auf denen es sich befindet.collision_mask: die Schichten, die es überwacht. Ein Bereich bemerkt nur Körper auf einer Schicht, die in seiner Maske enthalten ist.
Beides sind Zahlen. Schicht 1 ist 1, Schicht 2 ist 2, Schicht 3 ist 4, Schicht 4 ist 8. Alles startet auf Schicht 1 mit Maske 1, daher bemerkt alles alles.
Hier befindet sich der Spieler auf Schicht 2 und der Korallenball auf Schicht 1. Damit nur der Spieler die Münze nehmen kann, überwacht die Münze ausschließlich Schicht 2:
func _ready():
collision_mask = 2Aufgabe
MittelSorge dafür, dass die Münze nur den Spieler bemerkt.
- Der Spieler befindet sich auf Layer 2. Setze am Anfang von
_ready()diecollision_maskder Münze so, dass sie nur Layer 2 bemerkt. - Lass die Zeile
connectunverändert.
Drücke „Spielen“: Der Ball rollt durch die Münze, dann gehst du hin und nimmst sie auf. Drücke anschließend „Prüfen“.
Probier es selbst
extends Area2D
func _ready():
body_entered.connect(_on_body_entered)
func _on_body_entered(body):
queue_free()
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Signale und Kollisionen
Übe selbstständig: Godot-Playground