いまのとこ瞬間移動しちゃってるんだがいい感じに一歩ずつ歩くアニメーションにしたい。
キャラが動いた
(略)
「つかむ」みたいに「移動中フラグ」みたいなもんを持たせておき、真のときに少しずつ動かすようなことをやるといいんだろうか。
ユニットを動かす方は歩くコースも考えないといけなくて大変そうなので、まずカーソルをぬるっと動かす方法を考えていた。やれるとこから一歩ずつ。
何でもかんでもフラグ管理すると後で酷いことになるんだが、いったん「移動フラグもたせるんですかね」って方向でやってみる。ポンコツゆえ。
- 移動フラグ持たせる
- 移動アニメーションのコマ数を決定する
- キー入力で得た移動先の座標はいったん別で保存
- 移動フラグ中は表示座標をずらす
- すべての移動アニメーションのコマを消化したら移動フラグを落とす
- 移動先の座標を実際の座標にセットする
こんなかんじかなー。
pyxelに限らずリアルタイムのアプリケーションはフレームで管理されているから、方向キーを押したあとのどのタイミングで「移動中」の中割り(に相当する座標オフセット)を用意する。
上下左右どちらへいくにしろ隣のコマは16pxむこうにあるので、最初は8px、次はさらに4px、つぎは。。。とやっていき、それをカーソル表示の際、カーソル位置の座標に加えて表示をする。
ずずっと動くようになった。小気味いい感じになるコマの割り方はあると思うのだが、それは都度都度調整してゆく。とりあえずなんとかなった。