إشارات ذات قيم
جزء من قسم الإشارات والتصادمات في رحلة 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