Zamknięte drzwi
Część sekcji Projekty ścieżki Godot w Coddy. Lekcja 28 z 33.
Door blokuje drogę do schodów. Jest obiektem typu StaticBody2D, więc move_and_slide zatrzymuje na nim bohatera. Przed nim znajduje się DoorZone, czyli obszar typu Area2D, nieco szerszy niż drzwi, dzięki czemu bohater dociera do niego jako pierwszego.
Gdy bohater z kluczem wchodzi do strefy, drzwi się otwierają:
func _on_door_zone_body_entered(body):
if has_key:
$Door.queue_free()
$DoorZone.queue_free()Usuń również strefę. W przeciwnym razie bohater ponownie do niej wejdzie, $Door już nie będzie istnieć, a gra zatrzyma się z komunikatem Nie znaleziono węzła.
Usuń drzwi za pomocą queue_free(). hide() jedynie zatrzymuje rysowanie. Kształt kolizji nadal blokowałby bohatera.
Wyzwanie
ŚredniW pliku main.gd połącz $DoorZone.body_entered. Gdy obiekt wejdzie, a has_key ma wartość true, usuń $Door i $DoorZone.
Spróbuj swoich sił
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
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Projekty
1Projekt: Breakout
Paletka w BreakoutUtrzymaj paletkę na ekranie4Projekt: Podziemny labirynt
Przejdź przez lochPodnieś kluczPoćwicz samodzielnie: Edytor online Godot