再生が終わったとき
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"はシグナルを送信しません。
チャレンジ
簡単ホップの後、ロボットが再び上下に揺れるようにしましょう。
_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")
ゲームの手触りのすべてのレッスン
自分で練習してみよう: Godotプレイグラウンド