Menu
CoddyTech

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 = 2
challenge icon

Aufgabe

Mittel

Sorge dafür, dass die Münze nur den Spieler bemerkt.

  1. Der Spieler befindet sich auf Layer 2. Setze am Anfang von _ready() die collision_mask der Münze so, dass sie nur Layer 2 bemerkt.
  2. Lass die Zeile connect unverä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()
quiz iconTeste dich selbst

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