الباب المغلق
جزء من قسم المشاريع في رحلة Godot على Coddy. الدرس 28 من 33.
يمنع 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 صحيحة، أزل $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
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس المشاريع
1مشروع: Breakout
مضرب Breakoutإبقاء المضرب على الشاشة4مشروع: استكشاف الزنزانة
تجوّل في الزنزانةالتقط المفتاح2مشروع: مطلق النار على الكويكبات
أدر السفينةأشعل المحركتدرّب بنفسك: Playground لـ Godot