Escapa de la mazmorra
Parte de la sección Proyectos del Journey de Godot de Coddy. Lección 36 de 36.
Las escaleras de la esquina más alejada son la salida. Son un Area2D llamado Exit. Cuando el héroe las pisa, el jugador gana:
func _on_exit_body_entered(body):
$HUD/Message.text = "You escaped!"
get_tree().paused = trueConéctalo en _ready junto con las otras señales. Enter también inicia una partida nueva después de ganar, ya que el reinicio solo comprueba si el juego está pausado.
Juega a tu mazmorra. Después, cámbiala: añade un segundo guardia, mueve las paredes o esconde la llave en un lugar más difícil de encontrar.
Desafío
FácilHaz que el héroe escape bajando las escaleras.
- En
main.gd, conecta$Exit.body_entereda una función. - Allí, muestra
You escaped!en$HUD/Messagey pausa el juego.
Pulsa «Jugar» y llega a las escaleras: se muestra You escaped!. Después, pulsa «Comprobar».
Pruébalo tú mismo
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
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Proyectos
1Proyecto: Breakout
La pala de BreakoutMantén la pala en pantalla4Proyecto: Explorador de mazmorras
Recorre la mazmorraRecoge la llavePractica por tu cuenta: Playground de Godot