Menu
CoddyTech

Die verschlossene Tür

Teil des Abschnitts Projekte der Godot-Journey von Coddy. Lektion 31 von 36.

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, eine Area2D, die etwas breiter als die Tür ist, sodass der Held sie 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 erneut hinein, $Door existiert nicht mehr und das Spiel wird mit Node not found beendet.

Entferne die Tür mit queue_free(). hide() stoppt nur das Zeichnen. Ihre Kollisionsform würde den Helden weiterhin blockieren.

challenge icon

Aufgabe

Mittel

Öffne die Tür mit dem Schlüssel.

  1. Verbinde in main.gd $DoorZone.body_entered mit einer Funktion.
  2. Wenn ein Körper eintritt und has_key wahr ist, entferne $Door und $DoorZone.

Drücke „Spielen“, nimm den Schlüssel und gehe zur Tür: Sie öffnet sich. Drücke dann „Prüfen“.

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

Alle Lektionen in Projekte

Übe selbstständig: Godot-Playground