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 = trueVerbinde 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.
Aufgabe
EinfachLass den Helden die Treppe hinunter entkommen.
- Verbinde in
main.gd$Exit.body_enteredmit einer Funktion. - Zeige dort
You escaped!in$HUD/Messagean 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
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 im Bild halten4Projekt: Dungeon-Crawler
Durch den Dungeon gehenDen Schlüssel aufhebenÜbe selbstständig: Godot-Playground