نفدت القلوب
جزء من قسم المشاريع في رحلة Godot على Coddy. الدرس 32 من 33.
عندما ينفد القلب الأخير، تنتهي اللعبة. تحقّق من وصول العدد إلى صفر مباشرةً بعد إخفاء القلب:
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وأوقف اللعبة مؤقتًا. - أثناء الإيقاف المؤقت، يؤدي الضغط على مفتاح الإدخال (
action) إلى إلغاء الإيقاف المؤقت وإعادة تحميل المشهد.
جرّب بنفسك
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()
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس المشاريع
1مشروع: Breakout
مضرب Breakoutإبقاء المضرب على الشاشة4مشروع: استكشاف الزنزانة
تجوّل في الزنزانةالتقط المفتاح2مشروع: مطلق النار على الكويكبات
أدر السفينةأشعل المحركتدرّب بنفسك: Playground لـ Godot