再生が終わったとき
CoddyのGodotジャーニー「ゲームの手触り」セクションの一部。レッスン 22/23。
ホップした後、ロボットは動かなくなります。これは、"hop"がループしないためです。揺れる動きに戻るようにしましょう。
AnimationPlayerは、ループしないアニメーションが最後まで再生されると、animation_finishedシグナルを送信します。このシグナルにはアニメーション名が含まれるため、1つの関数ですべてのアニメーションを処理できます。
func _ready():
$AnimationPlayer.animation_finished.connect(_on_animation_finished)
func _on_animation_finished(anim_name):
if anim_name == "hop":
print("Landed")body_enteredと同じ方法で接続します。ループするアニメーションは終わらないので、"bob"がシグナルを送信することはありません。
チャレンジ
簡単AnimationPlayer の animation_finished シグナルを関数 _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プレイグラウンド