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