Menu
CoddyTech

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

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

challenge icon

Desafío

Fácil

En 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
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