ねこ巫女籠城ゲーム開発(敵が建物を乗り越える移動で使う起伏を定義する)
敵の侵攻経路の調整をします。今は地面の傾斜とか建物の有無をガン無視して移動しているのを修正していきます。
実装すること
前回までで土塀や板塀は乗り越える動作をするための移動経路の高低差を反映させたメッシュとして定義することを決めました。敵の移動経路は、地面のタイルに8方向の移動方向を定義し、移動方向ごとの移動コストを計算した上で A* アルゴリズムで経路探索します。
↓タイルと移動経路
壁の場合は、壁を乗り越える方向の移動コストがなるように壁の場所に傾斜があるメッシュを用意して利用します。今回の記事はこのメッシュの実装についてです。
移動経路メッシュの定義と移動コストの計算
メッシュ情報は yaml で定義することにしました。
頂点ごとに X 位置、Y 位置、高さ、を記述しているのですがデータに無駄が多いので、必要なら後で修正します。
そして、このメッシュデータが正しいかを確認するために、メッシュを描画するシーンを作ってみました。
↓櫓の隅で使うメッシュを描画したもの。
壁がある位置が高くなっているのがわかります。よいです。
次は、このメッシュ上を移動したときの移動コストを あらかじめ計算して利用できるようにするあたりなのですが、それは次回の記事にします。
基本的にはタイルの8方向と中心との間で、このメッシュの高低差による移動コストを計算するだけのはずです。
まとめと今後の予定
ユニットの移動コストの計算で利用するメッシュを定義し、形状を視認できる仕組みを作りました。次回はこのメッシュから移動コストを計算して利用するあたりに着手します。
今回の記事を書いていて気付いたのですが、物見櫓みたいな単体でそこそこ高い建物のメッシュをどうするか考えていませんでした。土塀や白漆喰の櫓を想定してたので「防弾率は下がるけど建物自体は壊れない」というつもりでしたが、物見櫓とか棍棒で叩けば壊れそうな納屋みたいな建物にも「建物は壊れない」ルールを適用するかは引き続き考えます。
ともあれ、実装が進んだので大変良いです。がんばります。