Menu
CoddyTech

اهرب من الزنزانة

جزء من قسم المشاريع في رحلة Godot على Coddy. الدرس 36 من 36.

السلالم في الزاوية البعيدة هي طريق الخروج. إنها Area2D تُسمى Exit. عندما يخطو البطل عليها، يفوز اللاعب:

func _on_exit_body_entered(body):
	$HUD/Message.text = "You escaped!"
	get_tree().paused = true

اربطها في _ready مع الإشارات الأخرى. يبدأ زر Enter لعبة جديدة بعد الفوز أيضًا، لأن إعادة التشغيل تتحقق فقط من أن اللعبة متوقفة مؤقتًا.

العب زنزانتك. ثم غيّرها: أضف حارسًا ثانيًا، أو حرّك الجدران، أو أخفِ المفتاح في مكان أصعب.

challenge icon

التحدي

سهل

اجعل البطل يهرب نزولًا على الدرج.

  1. في main.gd، اربط $Exit.body_entered بدالة.
  2. هناك، اعرض You escaped! في $HUD/Message وأوقف اللعبة مؤقتًا.

اضغط «العب» واصل إلى الدرج: ستظهر عبارة You escaped! ثم اضغط «تحقق».

جرّب بنفسك

extends Node2D

var has_key = false
var health = 3

func _ready():
	$Key.body_entered.connect(_on_key_body_entered)
	$DoorZone.body_entered.connect(_on_door_zone_body_entered)
	$Enemy.body_entered.connect(_on_enemy_body_entered)

func _process(delta):
	if get_tree().paused and Input.is_action_just_pressed("action"):
		get_tree().paused = false
		get_tree().reload_current_scene()

func _on_key_body_entered(body):
	has_key = true
	$Key.queue_free()
	$HUD/KeyIcon.visible = true

func _on_door_zone_body_entered(body):
	if has_key:
		$Door.queue_free()
		$DoorZone.queue_free()

func _on_enemy_body_entered(body):
	health -= 1
	$HUD/Hearts.get_child(health).visible = false
	$Hero.flash()
	if health == 0:
		$HUD/Message.text = "Game Over"
		get_tree().paused = true
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس المشاريع

تدرّب بنفسك: Playground لـ Godot