変更ルール

更新距離を変更するタイミング PICO-8
更新距離を変更するタイミング

制作中のPICO-8スネークゲーム「ピコニョロ」。

敵のカエルの数が少なくなると、移動量を増すルールを設けたのですが、その変更タイミングのルールを考えました。

チェックするのは、以下の2つで、

  • カエルの数が何匹になったか
  • ステージ数

で決まるようにします。

チェックするカエルの数も、ステージ数が高くなると、数が多くなるようにします。

そうすることで、ステージ数が上がると難易度が上がり、クリアしにくくなります。

昔のアクションゲームでよくあるアルゴリズムです。

で、実際にどの様なタイミングで変更するかを説明すると、カエルの移動量は3種類あるので、条件を3つ用意します。

  1. ゲームスタート時の状態(デフォルト)、一番移動量が少ない=移動が遅い
  2. ある程度カエルの数が少なくなったら、二番目に移動量が多い状態=移動が普通の速さ
  3. 更にカエルの数が少なくなったら、一番移動量の多い状態=移動が最高速

となり、実際書いたコードはこちらになります。

-- frog distance table update
if #frogs + #ascensions <= mid( 1, flr(sys.stage_no/4)*2+1, 5 ) then
    frog.fdistp = 3
elseif #frogs + #ascensions <= mid( 3, flr(sys.stage_no/4*5), 10) then
    frog.fdistp = 2
end

#frogsは、ステージ上にいるカエルの数
#ascensionsは、昇天しているカエルの数
mid( )関数は、3つの引数のうち真ん中の数を返します(最大と最小の範囲内の数値を取得できる)。
flr( )関数は、小数点を切り捨てて整数を返す
sys.stage_noは、ステージ数
frog.fdistpは、移動量が入っているテーブルの添字です(1移動量:0.5、2移動量:1、3移動量:2)

なので、

  • 3ステージまでは、残り3匹で移動量1、残り1匹で移動量2
  • 4〜7ステージまでは、残り5匹で移動量1、残り3匹で移動量2
  • 8ステージ以後は、残り10匹で移動量1、残り5匹で移動量2

となります。

実行結果です。

更新距離を変更するタイミング 動画
更新距離を変更するタイミング 動画

右上に表示されている「DISTANCE」が1から2へ変わったタイミングが、カエルが昇天して消えるタイミングになっているのがわかります。

またしても、PROGRAM TOO LARGEのメッセージが!
またしても、PROGRAM TOO LARGEのメッセージが!

最近は、トークンギリギリでコードを修正&追記しているので、コード削減とも戦っています。

次は、カエルの色を移動量に合わせて、変えてみたいと思います。

コメント

タイトルとURLをコピーしました