Menu
CoddyTech

Aus dem Dungeon entkommen

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

Die Treppe in der hinteren Ecke ist der Ausgang. Sie ist eine Area2D namens Exit. Wenn der Held sie betritt, gewinnt der Spieler:

func _on_exit_body_entered(body):
	$HUD/Message.text = "You escaped!"
	get_tree().paused = true

Verbinde sie in _ready mit den anderen Signalen. Enter startet auch nach einem Sieg ein neues Spiel, da der Neustart nur prüft, ob das Spiel pausiert ist.

Spiele dein Verlies. Ändere es dann: Füge einen zweiten Wächter hinzu, versetze die Wände oder verstecke den Schlüssel an einem schwerer zu findenden Ort.

challenge icon

Aufgabe

Einfach

Lass den Helden die Treppe hinunter entkommen.

  1. Verbinde in main.gd $Exit.body_entered mit einer Funktion.
  2. Zeige dort You escaped! in $HUD/Message an und pausiere das Spiel.

Drücke „Spielen“ und erreiche die Treppe: You escaped! wird angezeigt. Drücke dann „Prüfen“.

Probier es selbst

extends Node2D

var has_key = false
var health = 3

func _ready():
	$Key.body_entered.connect(_on_key_body_entered)
	$DoorZone.body_entered.connect(_on_door_zone_body_entered)
	$Enemy.body_entered.connect(_on_enemy_body_entered)

func _process(delta):
	if get_tree().paused and Input.is_action_just_pressed("action"):
		get_tree().paused = false
		get_tree().reload_current_scene()

func _on_key_body_entered(body):
	has_key = true
	$Key.queue_free()
	$HUD/KeyIcon.visible = true

func _on_door_zone_body_entered(body):
	if has_key:
		$Door.queue_free()
		$DoorZone.queue_free()

func _on_enemy_body_entered(body):
	health -= 1
	$HUD/Hearts.get_child(health).visible = false
	$Hero.flash()
	if health == 0:
		$HUD/Message.text = "Game Over"
		get_tree().paused = true
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 Projekte

Übe selbstständig: Godot-Playground