اهرب من الزنزانة
جزء من قسم المشاريع في رحلة Godot على Coddy. الدرس 36 من 36.
السلالم في الزاوية البعيدة هي طريق الخروج. إنها Area2D تُسمى Exit. عندما يخطو البطل عليها، يفوز اللاعب:
func _on_exit_body_entered(body):
$HUD/Message.text = "You escaped!"
get_tree().paused = trueاربطها في _ready مع الإشارات الأخرى. يبدأ زر Enter لعبة جديدة بعد الفوز أيضًا، لأن إعادة التشغيل تتحقق فقط من أن اللعبة متوقفة مؤقتًا.
العب زنزانتك. ثم غيّرها: أضف حارسًا ثانيًا، أو حرّك الجدران، أو أخفِ المفتاح في مكان أصعب.
التحدي
سهلاجعل البطل يهرب نزولًا على الدرج.
- في
main.gd، اربط$Exit.body_enteredبدالة. - هناك، اعرض
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
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس المشاريع
تدرّب بنفسك: Playground لـ Godot