開発再開!

魔法のパターンを描いてみた PICO-8
魔法のパターンを描いてみた

ダレ気味だったのを、ビジホ開発でスイッチが入った私。

開発中のゲーム、project005(仮タイトル)を進めていきます。

ビジホ開発の時は、線で囲んだ範囲から魔法領域が はみ出してしまい、デバッグの最中でした。

結局解決しなくて、後日の家に持ち越しとなりました。

囲み範囲の確定がおかしい
囲み範囲の確定がおかしい

printh(コンソールに表示するprint文)を各所に仕込んで、トレースしながらチェックしたり、ステージの場所を更新の都度表示させるようにもしてみましたが、原因はわかりませんでした。

トレースするためにマトリックスの内容を表示させるようにしてみました
トレースするためにマトリックスの内容を表示させるようにしてみました

ふと、テーブルのコピーの実験をしていたら、原因らしきものが浮かんできました。

テーブル名1 = テーブル名2で、テーブル名2の内容をテーブル名1へコピーできると思っていたら、テーブルを指すアドレスをコピーする事に気付きました。

何で気づいたかというと、このコピーをしたあとに、テーブル名1[1] = “A” とすると、テーブル名2[1]の要素も”A”となることでわかりました。

そこで、テーブル名1 = テーブル名2とするのではなく、各テーブル要素毎にループを使ってコピーする関数を作って、それを呼び出してコピーするようにしました。

魔法領域確定コード書けた?
魔法領域確定コード書けた?

魔法発動の範囲を黄色で点滅させて確認しました。

色々と試してみると、今度は画面隅で囲むと領域確定できないバグを発見!

画面隅で魔法が発動しない
画面隅で魔法が発動しない

画面隅で囲むと、画面外への範囲チェックとなってしまい、上手くいかないことがわかりました。

これは、以前のprinthのトレースが活かされました(何事も経験は無駄にならず)。

画面外へのチェックも実装して、上手くいくようになりました。

黄色く点滅するのは、味気無い(?)ので緑色の炎の様な魔法のアニメーションを描いて表示させるようにしました。

画面隅でも魔法発動
画面隅でも魔法発動
複雑な囲みでも魔法範囲を確定します
複雑な囲みでも魔法範囲を確定します

一応(バグが出なければ)、魔法領域確定は実装出来たということで、次の敵と地形に取り掛かります。

コメント

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