Escapa de la mazmorra
Parte de la sección Proyectos del Journey de Godot de Coddy. Lección 33 de 33.
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éctala en _ready con las demás señales. Enter también inicia una partida nueva después de ganar, ya que el reinicio solo comprueba si el juego está en pausa.
Juega en tu mazmorra. Después cámbiala: añade un segundo guardia, mueve las paredes o esconde la llave en algún lugar más difícil.
Desafío
FácilEn main.gd, conecta $Exit.body_entered a una función que muestre You Escaped! en $HUD/Message y pause el juego.
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
Paleta de BreakoutMantén la paleta en pantalla4Proyecto: Explorador de mazmorras
Recorre la mazmorraRecoge la llavePractica por tu cuenta: Playground de Godot