La puerta cerrada
Parte de la sección Proyectos del Journey de Godot de Coddy. Lección 31 de 36.
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, para que el héroe llegue primero a él.
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 ya no 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á bloqueando al héroe.
Desafío
IntermedioAbre la puerta con la llave.
- En
main.gd, conecta$DoorZone.body_entereda una función. - Cuando un cuerpo entre y
has_keysea true, elimina$Doory$DoorZone.
Pulsa «Jugar», recoge la llave y camina hasta la puerta: se abre. Después, pulsa «Comprobar».
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
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