囲みの判定を考える

asepriteでアニメーションを作る PICO-8
asepriteでアニメーションを作る

次回作のゲーム「project005(仮)」で、主人公が引いた線が囲まれたら、その囲まれた範囲をどのように確定するのかを考えていました(仕事中にw)。

アイディアメモ
アイディアメモ

まず、囲まれたかどうかをチェックするには、「現在 線を引いた座標が、過去の座標にあるかどうか?」をチェックしたら良いと思いました。

実際にコードにして実装してみたら、上手くいきました(過去の座標をチェックするときは、一番古い位置は現在位置なので、一つずらしてチェックしていくのがポイントです)。

囲みチェックを実装
囲みチェックを実装

そして、その囲まれた範囲を確立させる方法を考えていて、ひとつの案が浮かび上がりました。

囲みチェックが出来たので、囲んだ部分の線だけを残します。

そして、その線の部分を8ピクセル毎のポイントに変換(下のアニメーションでは黄色いドット)。

上段の左から右へ線のブロックはもちろん、線と線で囲まれたブロックも確定していきます(下のアニメーションでは半透明で表示)。

そして、囲んだ範囲が広いと、魔法の攻撃力が上がるようにします(下のアニメーションでは赤→緑→青で示す)。

囲んだ範囲の判定方法の図解
囲んだ範囲の判定方法の図解

この処理を一度の実行で行い、座標テーブルを作成します。

これから実際に、コードで表現していきます(パズルの様)。

コメント

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