ランク

敵を作って弾を出すところまで作って、ゲームのキーとなるランク機構について考え始めた。
もともとのメイドインワリオでは回数を重ねるたびにゲーム全体のスピードが上がっていくので、それを真似して速度を上げることにした。
問題は速度を上げた状態での弾の発射で、今まではずっと毎フレームごとにカウンタをインクリメントしていき、適当な数で剰余を計算してそれによって弾を撃つ関数を呼んでいたのだが、速度を上げると弾を撃つ条件の剰余の数字を通り抜けることになる。で、解決方法を模索していた。ひとつは、弾を撃つ関数一箇所ごとに専用のカウンタを設けてやること。難易度は低いのだが、弾を撃つためにいちいちカウンタを作って変化させる処理を作らないといけないので面倒。それで、それを応用して"弾発射キュー"というものを用意して、それを配列に入れておけば勝手に弾を撃ってくれる、という機構を考えたのだが今度は弾を撃つ関数に渡す引数をどう記憶させておくかが問題になる。引数のバインディング機能でもあればいいのだが。
そして最後の手段と思われるのが、処理ループを呼び出す回数を増やすこと。ただ滑らかに速度を上げるためには一メインループ中に処理ループを呼び出す回数を多くしないといけず、速度が犠牲になる。
こんな感じで、ゲームスピードを上げたいだけなのにいい手段が浮かばないでいる。