3

私は現在、C++ の DirectX エンジンでゲームを作成しています。経路探索を使用して、兵士の軍隊を特定の場所に誘導しています。問題は、レイキャストを使用して、パスの途中に何もないかどうかを確認することです。これにより、ゲームの速度が低下します。経路探索を行うためのより良い方法はありますか?

軍隊の移動にも問題があります。現在、兵士の位置の平均を開始点として使用しています。つまり、すべての兵士は、終点に移動する前に最初にそこに行く必要があります。始点に行かずに終点に行く方法はありますか?

助けてくれてありがとう。

4

2 に答える 2

1

A-Starのようなものを試しましたか? ノード、またはマップのある種の 2D 配列表現を介してナビゲートするには? うまく書かれていると、ジョブ(マルチスレッド)を処理するのが簡単になるだけでなく、高速になる可能性があります。

位置Aにいる兵士がいて、Bに到達する必要がある場合.C(平均位置が何であれ)からBへのパスを計算するだけです.aからbへの方向を取得し、ある種の補間を行います. (これを行ったり試したりしたことはありませんが、かなりうまくいく可能性があります!)

于 2012-10-04T21:50:11.613 に答える
0

レイキャスティング中にすべてのオブジェクトのヒット テストを行っていますか?

多くのオブジェクトと兵士がいる場合、これは非常に高価になる可能性があります。一般的な解決策は、ワールドを正方形のグリッド セルに分割し、各オブジェクトをそのグリッドのオブジェクトのリストに入れることです。

次に、兵士から目的地までの架空の線を引き、どのオブジェクトに対してテストを実行する必要があるかを各セルで確認します。このようにして、直線パスに近いオブジェクトのみを評価し、他のすべてを無視します。

于 2012-10-04T21:58:51.257 に答える