Menu
CoddyTech

La puerta cerrada

Parte de la sección Proyectos del Journey de Godot de Coddy. Lección 28 de 33.

Una Door bloquea el camino hacia las escaleras. Es un StaticBody2D, así que move_and_slide detiene al héroe al llegar a ella. Delante está DoorZone, un Area2D un poco más ancho que la puerta, así que el héroe llega primero a la zona.

Cuando el héroe entra en la zona con la llave, la puerta se abre:

func _on_door_zone_body_entered(body):
	if has_key:
		$Door.queue_free()
		$DoorZone.queue_free()

Elimina también la zona. De lo contrario, el héroe volverá a entrar en ella, $Door dejará de existir y el juego se detendrá con Node not found.

Elimina la puerta con queue_free(). hide() solo detiene el dibujo. Su forma de colisión seguiría bloqueando al héroe.

challenge icon

Desafío

Intermedio

En main.gd, conecta $DoorZone.body_entered. Cuando un cuerpo entre y has_key sea true, elimina $Door y $DoorZone.

Pruébalo tú mismo

extends Node2D

var has_key = false

func _ready():
	$Key.body_entered.connect(_on_key_body_entered)

func _on_key_body_entered(body):
	has_key = true
	$Key.queue_free()
	$HUD/KeyIcon.visible = 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