إشارتك الخاصة
جزء من قسم الإشارات والتصادمات في رحلة Godot على Coddy. الدرس 7 من 27.
يمكنك منح العقدة إشارات خاصة بك. عرّف إشارة في أعلى النص البرمجي باستخدام signal:
extends Area2D
signal hitأرسلها باستخدام emit() عند حدوث الأمر:
func _on_body_entered(body):
hit.emit()قد تستخدم الشيفرات الأقدم emit_signal("hit"). وهي تفعل الشيء نفسه.
لا تفعل الأشواك سوى الإبلاغ عن إصابة أحدهم. أما ما تفعله الإصابة فيحدده النص البرمجي الذي يستمع إليها. هنا، يستمع النص البرمجي على Main إلى hit:
extends Node2D
# يستمع Main إلى إشارة hit الخاصة بالأشواك، بمجرد أن تصبح لديها هذه الإشارة.
func _ready():
if $Spikes.has_signal("hit"):
$Spikes.hit.connect(_on_spikes_hit)
func _on_spikes_hit():
print("Ouch!")
$Player.modulate = Color(1, 0.42, 0.42)ستكتب قريبًا مستمعات كهذه. في هذا الدرس، ستعدّل الأشواك فقط.
التحدي
سهلأعطِ الأشواك إشارةً وأرسلها عندما يطأها أحد.
- صرّح عن
signal hitفي أعلىspikes.gd. - في
_on_body_entered، أرسلها باستخدامhit.emit().
اضغط على «العب» وامشِ فوق الأشواك: ستعرض وحدة التحكم Ouch! وسيتحول لونك إلى المرجاني. ثم اضغط على «تحقق».
جرّب بنفسك
extends Area2D
func _ready():
body_entered.connect(_on_body_entered)
func _on_body_entered(body):
pass
جميع دروس الإشارات والتصادمات
تدرّب بنفسك: Playground لـ Godot