ブロックすり抜け現象

無事にブロックをすり抜けず、逸れるようになりました PICO-8
無事にブロックをすり抜けず、逸れるようになりました

現在制作中のゲーム「Magic Line」で、出現した敵が ブロックをすり抜けてしまうバグを発見し、原因を突き止めて 修正しました。

下のブロックをすり抜けて、移動してしまう
下のブロックをすり抜けて、移動してしまう

ゲーム制作中、バグが見つかる事がありますよね?

「こんにちは!バグで ごぜえます(ペコリ)」って感じで。

それで見つけると、原因をあの手この手で突き止めていくのです。

大体、ChatGPT(チャッピー)に相談したり、自分の考えで「多分これじゃないのか?」な所の変数を、print文で出力して検証していきます。

変数の数値を変えて違いを調べてみたり、条件式で print文を実行したりして、狙う範囲を狭めて特定します。

今回の原因は、
出現した時のブロック(8×8のタイル)座標が、移動して次のタイル座標へ移った時に、進行方向へ障害物が無いかチェックしているのですが、最初は移動していないため、初期の座標と現在の座標が同じなので、障害物チェックしなかったためです。

初期の座標と現在の座標が はじめから違えば、出現時に移動していなくてもチェックするので、初期の座標をnil(何も無い意味)にしたら、無事にチェックするようになりました。

無事にブロックをすり抜けず、逸れるようになりました
無事にブロックをすり抜けず、逸れるようになりました

今回の場合、「一番はじめの時だけ、ブロックをすり抜ける」のが、大きなヒントになりました。

バグって自らが生み出したものなので、「このぉ〜バグめぇ〜!」って憎めないんですよね。

さあ、制作に戻ります。

「次行ってみよぉ〜! 次どおぞぉ〜!(8時だョ!全員集合)」

コメント

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