عند انتهائه
جزء من قسم الإحساس باللعبة في رحلة 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" هذه الإشارة أبدًا.
التحدي
سهلاجعل الروبوت يتمايل مجددًا بعد القفزة.
- في
_ready()، اربط$AnimationPlayer.animation_finishedبـ_on_animation_finished. - اكتب
_on_animation_finished(anim_name): عندما تكون قيمةanim_nameهي"hop"، شغّل"bob".
اضغط على «العب» ثم اضغط على Space: بعد القفزة، يتمايل الروبوت مجددًا. ثم اضغط على «تحقق».
جرّب بنفسك
extends Node2D
func _ready():
$AnimationPlayer.play("bob")
func _process(delta):
if Input.is_action_just_pressed("jump"):
$AnimationPlayer.play("hop")
جميع دروس الإحساس باللعبة
1التحريكات التدريجية (Tweens)
أول تحريك تدريجي لكحرّك أي خاصية تدريجيًاالتلاشيتخفيف الحركة عند النهايةواحدًا تلو الآخرفي الوقت نفسهعملة تقفزتدرّب بنفسك: Playground لـ Godot