Menu
CoddyTech

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.

challenge icon

Wyzwanie

Średni

W 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
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Projekty

Poćwicz samodzielnie: Edytor online Godot