Die verschlossene Tür
Teil des Abschnitts Projekte der Godot-Journey von Coddy. Lektion 28 von 33.
Eine Door versperrt den Weg zur Treppe. Sie ist ein StaticBody2D, daher hält move_and_slide den Helden an ihr auf. Davor befindet sich DoorZone, ein Area2D, das etwas breiter als die Tür ist, damit der Held es zuerst erreicht.
Wenn der Held mit dem Schlüssel in die Zone läuft, öffnet sich die Tür:
func _on_door_zone_body_entered(body):
if has_key:
$Door.queue_free()
$DoorZone.queue_free()Entferne auch die Zone. Andernfalls läuft der Held wieder hinein, $Door existiert nicht mehr und das Spiel wird mit Node not found angehalten.
Entferne die Tür mit queue_free(). hide() beendet nur das Zeichnen. Ihre Kollisionsform würde den Helden weiterhin blockieren.
Aufgabe
MittelVerbinde in main.gd $DoorZone.body_entered. Wenn ein Körper eintritt und has_key wahr ist, entferne $Door und $DoorZone.
Probier es selbst
extends Node2D
var has_key = false
func _ready():
$Key.body_entered.connect(_on_key_body_entered)
func _on_key_body_entered(body):
has_key = true
$Key.queue_free()
$HUD/KeyIcon.visible = true
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Projekte
1Projekt: Breakout
Breakout-SchlägerDen Schläger auf dem Bildschirm halten4Projekt: Dungeon-Crawler
Durch den Dungeon gehenDen Schlüssel aufhebenÜbe selbstständig: Godot-Playground