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

ثلاثة قلوب

جزء من قسم المشاريع في رحلة Godot على Coddy. الدرس 30 من 33.

ينبغي أن يؤدي لمس الحارس إلى فقدان قلب. القلوب الثلاثة في الشريط العلوي هي Heart1 وHeart2 وHeart3، وهي أبناء $HUD/Hearts. الحارس هو Area2D، لذا تُطلق إشارته body_entered عند ملامسته للبطل:

func _on_enemy_body_entered(body):
	health -= 1
	$HUD/Hearts.get_child(health).visible = false

تعطي get_child(i) ابن العقدة بحسب موضعه، مع بدء العد من 0. بعد الضربة الأولى تصبح قيمة health هي 2، ويكون get_child(2) هو Heart3. تختفي القلوب من اليمين.

تُطلق body_entered مرة واحدة عند كل لمسة. البطل الذي يبقى في مسار الحارس يفقد قلبًا في كل مرة يعود فيها الحارس.

challenge icon

التحدي

متوسط

في main.gd:

  1. أضف var health = 3 واربط $Enemy.body_entered.
  2. عند كل ملامسة، قلّل health بمقدار واحد، ثم أخفِ $HUD/Hearts.get_child(health).

جرّب بنفسك

extends Node2D

var has_key = false

func _ready():
	$Key.body_entered.connect(_on_key_body_entered)
	$DoorZone.body_entered.connect(_on_door_zone_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()
quiz iconاختبر نفسك

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

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

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