Menu
CoddyTech
flag Ar iconالعربيةdown icon

نفدت القلوب

جزء من قسم المشاريع في رحلة 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()

تعيد إعادة التحميل ضبط كل شيء: ثلاثة قلوب، والمفتاح على الأرض، والباب مقفل.

challenge icon

التحدي

متوسط
  1. عندما تصل health إلى 0، اعرض Game Over في $HUD/Message وأوقف اللعبة مؤقتًا.
  2. أثناء الإيقاف المؤقت، يؤدي الضغط على مفتاح الإدخال (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()
quiz iconاختبر نفسك

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

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

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