![スクリーンショット_2019-07-26_19](https://assets.st-note.com/production/uploads/images/13211042/rectangle_large_type_2_1e3869857384a46f10c000b2c57d449a.png?width=800)
部屋を区別できるようにして、探索を高速化 RogueEna
部屋にそれぞれIDを設定する仕組みを実装しました。
これは、あるマスと同じ部屋に属するマスの集合を取得できるようになったことを意味しています。
例えば部屋にいる自動移動するキャラクターが次の目標の出入り口の位置を見つける時、その部屋の中から出入り口を選択することができます。他にも、寝ているモンスターが部屋に入ったときに目覚める時、その部屋に居るモンスターか、別のモンスターなのかを区別できたり、モンスターハウスを作ったり、そういうことが色々できるようになりました。
この図では、赤色が部屋で、そのマスにIDに対応した色分けをしています。連続する赤いマスは同じIDになっていて、離れた部屋は別のIDになっています。
昨日仮に実装したとても重かった自動移動時の探索アルゴリズムがこれによりとても軽量化されました。ダンジョン生成時に自動的に判定しています。またゲーム中に新たな穴が空いたり部屋が拡張された場合にも対応しています。アルゴリズムは塗りつぶしの仕組みを使っていて非常に実装が簡単で、この程度のマスの量だととても高速です。
今日は外出予定があったので、これくらいしか作業できませんでした。アルキメデスの大戦という映画、とてもおもしろかったです。
応援してくださると嬉しいです。よろしくお願いいたします!