人生

やっていきましょう

先日のアクションARPG要素に新たなバグを発見した。敵を吹っ飛ばした瞬間に討伐数としてカウントした数字が、正常に記録されていなかった。具体的には、複数の敵が団子状態になっているところに突撃して吹っ飛ばす処理が重複している状態、もしくは先日導入した飛び道具を使って複数のイベントを同時にぶっ飛ばすと1か2ほど点数が上振れを起こす。

この不具合の原因は飛び道具云々というよりは動作指定の重複という点にあり、1フレームに多くの動作を発動させてしまっているところにある。だからウェイトを挟むなどして処理の重複を緩和させることが解決につながるのだが、あまりウェイト時間を長くすると触れた瞬間に遥か遠くまで一気に吹き飛ばせるという爽快感がなくなってしまう。

そこで自分は動作の短縮を図った。もともとの触れた瞬間に吹っ飛ぶ動作はまず移動速度、移動頻度をMAXの状態にして、更にすりぬけ状態にする。それからいずれかの方向に10歩歩かせてイベントを消去する、というものだった。しかしこれでは行が長すぎる。そこで自分は移動ではなくジャンプを活用することにした。そうすることによってすりぬけとジャンプ、それから(変数による)消去のたった3行で済む。

実際にイベント32体を用意して突撃したところ、これまではカウントが34体を示していたのが何度試しても32体のままになった。修正は成功である。

しかしこれにも問題がある。それはジャンプの方向を予め設定しなければならないという点である。移動であればランダムな方向を向いて一歩前進ということができた。しかしジャンプにはその要素がない。

今思いついたが、ジャンプの跳躍範囲を変数で管理し、触れた瞬間に乱数判定を行えばいいのではないか。これまで直線的に飛んでいくような爽快感ある軌道ばかりを選んでいたが、乱数によるランダム化を導入すればより躍動的な演出になるはずだ。さっそく試してみたい。