Menu
CoddyTech

כשהוא מסתיים

חלק מהיחידה התחושה של המשחק במסלול ה-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" לעולם לא שולחת אותו.

challenge icon

אתגר

קל

גרום לרובוט להתנדנד שוב אחרי קפיצה.

  1. ב־_ready(), חבר את $AnimationPlayer.animation_finished אל _on_animation_finished.
  2. כתוב _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 אונליין