##やりたいこと
左右ボタンを押したらキャラクターが歩きアニメーションを開始し、止まったらアニメーションを歩きストップさせたい。
Spriteのインスペクタ>Animation>Hframeを2にする。
これでスプライトを横に2分割し、フレームで切り分けることができる。
AnimationPlayerノードを作成し、「アニメーション」ボタン>新規で「walk」を作成。
アニメーションの長さを0.4秒にし、ループボタンを押す。
スプライトのインスペクタ>Animation>Frameの鍵マークを押し、0秒の位置にキーフレームを打つ。
タイムラインの0.2秒のところに移動し、Frameを1にして鍵マークを押す。
新規でアニメーション「stop」を作成。
Frameを0にして鍵マークを押し、自動再生ボタンを押す。
これでキャラクターは初期状態では止まっている状態になる。
スクリプトで以下のようにAnimationPlayerを操作する。
(Spriteをキー入力で左右反転させたコードを利用)
Player.gd
func _process(delta):
if Input.is_action_pressed("move_right"):
$AnimationPlayer.play("walk")
$Sprite.set_flip_h(false)
elif Input.is_action_pressed("move_left"):
$AnimationPlayer.play("walk")
$Sprite.set_flip_h(true)
else :
$AnimationPlayer.play("stop")
これで左右ボタンを押したら歩きアニメーションを開始し、止まったらアニメーションをストップさせることができる。