Menu
CoddyTech

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 = true

Coné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.

challenge icon

Desafío

Fácil

Haz que el héroe escape bajando las escaleras.

  1. En main.gd, conecta $Exit.body_entered a una función.
  2. Allí, muestra You escaped! en $HUD/Message y 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
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Proyectos

Practica por tu cuenta: Playground de Godot