عند انتهائه
جزء من قسم الإحساس باللعبة في رحلة Godot على Coddy. الدرس 22 من 23.
بعد القفزة، يبقى الروبوت ساكنًا، لأن "hop" لا يتكرر. ينبغي أن يعود إلى التأرجح.
يرسل AnimationPlayer الإشارة animation_finished عندما يصل رسم متحرك لا يتكرر إلى نهايته. تحمل الإشارة اسم الرسم المتحرك، لذا يمكن لدالة واحدة التعامل مع جميع الرسوم المتحركة.
func _ready():
$AnimationPlayer.animation_finished.connect(_on_animation_finished)
func _on_animation_finished(anim_name):
if anim_name == "hop":
print("Landed")توصّله بالطريقة نفسها التي توصّل بها body_entered. لا ينتهي الرسم المتحرك المتكرر أبدًا، لذا لا يرسل "bob" هذه الإشارة أبدًا.
التحدي
سهلاربط الإشارة animation_finished الخاصة بـ AnimationPlayer بالدالة _on_animation_finished(anim_name). عندما يكون اسم الحركة التي انتهت هو "hop"، شغّل "bob" مرة أخرى.
جرّب بنفسك
extends Node2D
func _ready():
$AnimationPlayer.play("bob")
func _process(delta):
if Input.is_action_just_pressed("jump"):
$AnimationPlayer.play("hop")
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الإحساس باللعبة
1التحريكات التدريجية (Tweens)
أول تحريك تدريجي لكحرّك أي خاصية تدريجيًاالتلاشيتخفيف الحركة عند النهايةواحدًا تلو الآخرفي الوقت نفسهعملة تقفزتدرّب بنفسك: Playground لـ Godot