כשהוא מסתיים
חלק מהיחידה התחושה של המשחק במסלול ה-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")
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה התחושה של המשחק
תרגלו בעצמכם: Godot אונליין