Menu
CoddyTech

La porta chiusa a chiave

Fa parte della sezione Progetti del percorso Godot di Coddy. Lezione 31 di 36.

Una Door blocca il passaggio verso le scale. È un StaticBody2D, quindi move_and_slide ferma l'eroe davanti a essa. Davanti alla porta c'è DoorZone, un'Area2D leggermente più larga della porta, così l'eroe la raggiunge per primo.

Quando l'eroe entra nella zona con la chiave, la porta si apre:

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

Rimuovi anche la zona. Altrimenti l'eroe ci rientra, $Door non esiste più e il gioco si interrompe con Node not found.

Rimuovi la porta con queue_free(). hide() interrompe solo il disegno. La sua forma di collisione continuerebbe a bloccare l'eroe.

challenge icon

Sfida

Medio

Apri la porta con la chiave.

  1. In main.gd, collega $DoorZone.body_entered a una funzione.
  2. Quando un corpo entra e has_key è true, rimuovi $Door e $DoorZone.

Premi «Gioca», prendi la chiave e cammina fino alla porta: si apre. Poi premi «Verifica».

Provalo tu

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

Tutte le lezioni di Progetti

Esercitati da solo: Playground Godot