Menu
CoddyTech

إشارات ذات قيم

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

challenge icon

التحدي

سهل

اجعل كل جوهرة تخبر main.gd بعدد النقاط التي تساويها.

  1. عرّف signal collected(points) في بداية gem.gd.
  2. في نهاية _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