Menu
CoddyTech

الباب المغلق

جزء من قسم المشاريع في رحلة 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() توقف الرسم فقط، وسيظل شكل التصادم الخاص به يعيق البطل.

challenge icon

التحدي

متوسط

افتح الباب بالمفتاح.

  1. في main.gd، اربط $DoorZone.body_entered بدالة.
  2. عندما يدخل جسم وتكون 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