כשהוא מסתיים
חלק מהיחידה התחושה של המשחק במסלול ה-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".
לחץ על "שחק" ולחץ על מקש הרווח: אחרי הקפיצה הרובוט מתנדנד שוב. לאחר מכן לחץ על "בדיקה".
נסו בעצמכם
extends Node2D
func _ready():
$AnimationPlayer.play("bob")
func _process(delta):
if Input.is_action_just_pressed("jump"):
$AnimationPlayer.play("hop")
כל השיעורים ביחידה התחושה של המשחק
תרגלו בעצמכם: Godot אונליין