Menu
CoddyTech
flag Pt iconPortuguêsdown icon

A porta trancada

Parte da seção Projetos do Journey de Godot da Coddy. Lição 28 de 33.

Uma Door bloqueia o caminho até as escadas. Ela é um StaticBody2D, então move_and_slide para o herói quando ele chega até ela. À frente dela fica DoorZone, uma Area2D um pouco mais larga que a porta, para que o herói a alcance primeiro.

Quando o herói entra na zona com a chave, a porta se abre:

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

Remova a zona também. Caso contrário, o herói entrará nela novamente, $Door não existirá mais e o jogo será interrompido com a mensagem Nó não encontrado.

Remova a porta com queue_free(). hide() apenas interrompe a exibição. A forma de colisão dela ainda bloquearia o herói.

challenge icon

Desafio

Médio

Em main.gd, conecte $DoorZone.body_entered. Quando um corpo entrar e has_key for verdadeiro, remova $Door e $DoorZone.

Experimente você mesmo

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 iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Projetos

Pratique por conta própria: Playground de Godot