Kilitli Kapı
Coddy'nin Godot Journey'sinin Projeler bölümünün bir parçası. Ders 31 / 36.
Bir Door, merdivenlere giden yolu kapatır. Bu bir StaticBody2D olduğu için move_and_slide, kahramanı ona çarptığında durdurur. Önünde, kapıdan biraz daha geniş bir Area2D olan DoorZone bulunur; böylece kahraman önce ona ulaşır.
Kahraman anahtarla bölgeye girdiğinde kapı açılır:
func _on_door_zone_body_entered(body):
if has_key:
$Door.queue_free()
$DoorZone.queue_free()Bölgeyi de kaldır. Aksi takdirde kahraman tekrar içine girer, $Door artık mevcut değildir ve oyun Node not found hatasıyla durur.
Kapıyı queue_free() ile kaldır. hide() yalnızca çizimi durdurur. Kapının çarpışma şekli kahramanı engellemeye devam eder.
Görev
OrtaAnahtarla kapıyı aç.
main.gdiçinde$DoorZone.body_enteredöğesini bir fonksiyona bağla.- Bir gövde alana girdiğinde ve
has_keytrue olduğunda$Doorve$DoorZoneöğelerini kaldır.
“Oyna” düğmesine bas, anahtarı al ve kapıya yürü: kapı açılır. Ardından “Kontrol et” düğmesine bas.
Kendin dene
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
Projeler bölümündeki tüm dersler
1Proje: Tuğla Kırma
Tuğla Kırma RaketiRaketi Ekranda Tut4Proje: Zindan Macerası
Zindanda YürüAnahtarı AlKendi başına pratik yap: Godot playground