إشارات ذات قيم
جزء من قسم الإشارات والتصادمات في رحلة Godot على Coddy. الدرس 8 من 27.
يمكن للإشارة أن تحمل قيماً، كما تحمل body_entered الجسم. أدرجها بين أقواس عند تعريفها:
signal collected(points)مرّر القيم إلى emit() بالترتيب نفسه:
collected.emit(points)تحصل كل دالة متصلة بـ collected على القيمة. هنا، يضيف النص البرمجي على Main النقاط إلى النتيجة ويطبعها:
func _on_gem_collected(points):
score += points
print("Score: ", score)يُشغّل كلا الحجرين الكريمين النص البرمجي نفسه. قيمة points للحجر الكريم الصغير هي 10، وللكبير 25، وتُضبط على كل عقدة في المفتش. لذا أرسل points، لا رقماً تكتبه بنفسك.
التحدي
سهلاجعل كل جوهرة تخبر main.gd بعدد النقاط التي تساويها:
- صرّح عن
signal collected(points)في أعلىgem.gd. - في نهاية
_on_body_entered، أرسل الإشارة معpointsالخاصة بالجوهرة.
امشِ فوق كلتا الجوهرتين. ينبغي أن تعرض وحدة التحكم Score: 10، ثم Score: 35.
جرّب بنفسك
extends Area2D
@export var points = 10
func _ready():
body_entered.connect(_on_body_entered)
func _on_body_entered(body):
if not visible:
return
visible = false
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الإشارات والتصادمات
تدرّب بنفسك: Playground لـ Godot