Menu
CoddyTech

سجّل نقطة لعبور أنبوب

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

كل أنبوب تتجاوزه يُحتسب نقطة. للأنبوب عنصر ابن Area2D يُسمى Gap، وهو شريط رفيع خلف الفتحة. لا يلمسه الطائر إلا بعد أن يعبره، لذا عندها تُحتسب النقطة.

في pipe.gd، اربط إشارة العنصر الابن عبر $Gap وأطلق scored:

$Gap.body_entered.connect(_on_gap_body_entered)

func _on_gap_body_entered(body):
	scored.emit()

في main.gd، اربط إشارة scored لكل أنبوب جديد. أضف واحدًا إلى score واعرضه في $HUD/Score. تحوّل str(score) الرقم إلى نص. اعرض 0 في البداية.

challenge icon

التحدي

متوسط

احصل على نقطة مقابل كل أنبوب تتجاوزه.

  1. في pipe.gd، أضف signal scored، وصّل $Gap.body_entered وأصدر scored عندما يدخل جسم إلى الفجوة.
  2. في main.gd، أضف var score = 0 واعرض 0 في $HUD/Score عند البداية.
  3. وصّل scored لكل أنبوب بدالة تزيد النتيجة واحدًا وتعرضها.

اضغط «العب» وحلّق عبر فجوة: ستظهر النتيجة 1. ثم اضغط «تحقق».

جرّب بنفسك

extends Area2D

signal hit

const SPEED = 160

func _ready():
	body_entered.connect(_on_body_entered)

func _physics_process(delta):
	position.x -= SPEED * delta
	if position.x < -60:
		queue_free()

func _on_body_entered(body):
	hit.emit()

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

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