الباب المغلق
جزء من قسم المشاريع في رحلة Godot على Coddy. الدرس 31 من 36.
يسدّ Door الطريق إلى الدرج. وهو من النوع StaticBody2D، لذا يوقف move_and_slide البطل عنده. وأمامه توجد DoorZone، وهي Area2D أعرض قليلًا من الباب، ليصل إليها البطل أولًا.
عندما يدخل البطل المنطقة ومعه المفتاح، يُفتح الباب:
func _on_door_zone_body_entered(body):
if has_key:
$Door.queue_free()
$DoorZone.queue_free()أزِل المنطقة أيضًا. وإلا فسيدخلها البطل مجددًا، ولن يعود $Door موجودًا، وستتوقف اللعبة مع ظهور الرسالة Node not found.
أزِل الباب باستخدام queue_free(). فالدالة hide() توقف الرسم فقط، وسيظل شكل التصادم الخاص به يعيق البطل.
التحدي
متوسطافتح الباب بالمفتاح.
- في
main.gd، اربط$DoorZone.body_enteredبدالة. - عندما يدخل جسم وتكون
has_keyقيمتها true، أزل$Doorو$DoorZone.
اضغط على «العب»، وخذ المفتاح وامشِ إلى الباب: سيفتح. ثم اضغط على «تحقق».
جرّب بنفسك
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
جميع دروس المشاريع
تدرّب بنفسك: Playground لـ Godot