次は氷の床の処理を考える。
氷は滑る。あたりまえーww
これをどう表現すればよいのか。
いろんなサンプルプログラムを見てみると、滑る=「移動入力を受け付けず、そのまま一方向に移動させ続ける」が一番シンプルに思えた。
早速、このゲームで実現するにはどうすればよいか考えた。
カーソルキーの入力を考える。
一方向に押し続ければ、滑る時間を長くしてみようと考えた。
滑る時間を決める材料として、左右キーを押したときの移動量を累積する処理を入れる。
たまねの移動量は、常にes_getpos命令で取得するようにしていたので、これを利用できそう。
まずは、Stick命令で取得したキー入力が1か4(左右のカーソルキー)のときに、X方向の移動量を足す。
そして、Stickの値が0で、かつ直前のStickの値が0以外のとき=カーソルキーの入力が無くなったら、累積した移動量から、滑るフレーム数を算出して設定する。滑るフレームが0以上なら、その間は左右のカーソルだけ入力を受け付けない。
そして、滑るフレームが0以上の間は、一定量の水平移動を強制的に行う。
ここでジャンプもできなくすると、かなり難しくなるのでジャンプはそのまま受け付ける。
そして、ジャンプした時点で滑るフレームは強制的に0にする。
と、一気に書いてみたが、挙動はこんな感じになる。

って、アニメGIFじゃ伝わらないなww
かなりツルツルとした挙動になったが、氷の床っぽくていい。とりあえず、これで確定にする。