タイルベースのマップと経路探索用の A* アルゴリズムを備えた小さなゲーム エンジンを作成しました。しかし、2 つのオブジェクトが衝突してウェイポイントをブロックすると、問題が発生します。彼らは反対方向から来ているので、もう動くことができず、次のウェイポイントに到達することはありません. 私はいくつかの可能な解決策を考えました
- 可動オブジェクトは他の可動オブジェクトと衝突できません
- ブロックされたタイルにフラグを立てるパスを再計算します
- 次の空きウェイポイントへのパスを計算し、移動可能なオブジェクトを含むすべてのタイルにブロックされたものとしてフラグを立てます
私は本当に最初の可能性をやりたくありません.それはアクションゲームのようなエンジンではないため、少し粗末です. 最後の 2 つの可能性は、マップ上に移動可能なオブジェクトが多数ある場合、非常に遅くなる可能性があります。どうすればいいと思いますか?ちなみに、最初の可能性は「Stronghold」に実装されており、残りの 2 つは新しい戦略ゲームで見つけることができます。