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.
Sfida
MedioApri la porta con la chiave.
- In
main.gd, collega$DoorZone.body_entereda una funzione. - Quando un corpo entra e
has_keyè true, rimuovi$Doore$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
1Progetto: Breakout
La racchetta di BreakoutMantieni la racchetta sullo schermo4Progetto: Dungeon Crawler
Attraversa il dungeonRaccogli la chiaveEsercitati da solo: Playground Godot