نفدت القلوب
جزء من قسم المشاريع في رحلة Godot على Coddy. الدرس 35 من 36.
عندما يختفي القلب الأخير، تنتهي اللعبة. اختبر ما إذا كانت القيمة صفرًا مباشرةً بعد إخفاء القلب:
if health == 0:
$HUD/Message.text = "Game Over"
get_tree().paused = trueالبطل والحارس قابلان للإيقاف المؤقت، لذا يتجمدان. أما Main فدائم التشغيل، لذا يستمر _process في العمل. يبدأ لعبة جديدة عندما يضغط اللاعب على Enter:
func _process(delta):
if get_tree().paused and Input.is_action_just_pressed("action"):
get_tree().paused = false
get_tree().reload_current_scene()تعيد إعادة التحميل ضبط كل شيء: ثلاثة قلوب، والمفتاح على الأرض، والباب مقفل.
التحدي
متوسطأنهِ اللعبة عند نفاد القلوب.
- عندما تصل
healthإلى 0، اعرضGame Overفي$HUD/Messageوأوقف اللعبة مؤقتًا. - أثناء الإيقاف المؤقت، يؤدي الضغط على Enter (
action) إلى استئناف اللعبة وإعادة تحميل المشهد.
اضغط على «العب» وافقد ثلاثة قلوب: ستظهر Game Over. اضغط على Enter للبدء من جديد. ثم اضغط على «تحقق».
جرّب بنفسك
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 _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()
جميع دروس المشاريع
تدرّب بنفسك: Playground لـ Godot