Menu
CoddyTech

Aus dem Dungeon entkommen

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

Die Treppe in der hinteren Ecke führt nach draußen. 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 beim Neustart nur geprüft wird, ob das Spiel pausiert ist.

Spiele dein Dungeon. Ändere es dann: Füge eine zweite Wache hinzu, verschiebe die Mauern oder verstecke den Schlüssel an einem schwierigeren Ort.

challenge icon

Aufgabe

Einfach

Verbinde in main.gd $Exit.body_entered mit einer Funktion, die You Escaped! in $HUD/Message anzeigt und das Spiel pausiert.

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