سجّل نقطة لعبور أنبوب
جزء من قسم المشاريع في رحلة 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 في البداية.
التحدي
متوسطاحصل على نقطة مقابل كل أنبوب تتجاوزه.
- في
pipe.gd، أضفsignal scored، وصّل$Gap.body_enteredوأصدرscoredعندما يدخل جسم إلى الفجوة. - في
main.gd، أضفvar score = 0واعرض0في$HUD/Scoreعند البداية. - وصّل
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()
جميع دروس المشاريع
3مشروع: الطائر المحلّق
جاذبية الطائراجعل الطائر يرفرفتدرّب بنفسك: Playground لـ Godot