Menu
CoddyTech
flag Ar iconالعربيةdown icon

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

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

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس الإشارات والتصادمات

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