1

いくつかの研究目的のために、私はあなたがプレイヤーによって制御される1つのタンクと1つ以上のNPCタンクを持っている小さなタンクゲームを構築しました。

今、私はこれらのNPC戦車が彼らが知らない分野をナビゲートすることを望みます。特定の範囲内にある場合、障害物を検出できます。それらの障害を検出した場合は、クエリが簡単な特定のデータ構成に保存する必要があります。彼らが移動するときにそれらを考慮に入れることができるように。

今ここで私は立ち往生しています:私のフィールドがグリッドである場合、それは私にとって非常に簡単です、私は障害物がどのタイル/ノードにあるかを保存するだけです。

しかし、私は実際にはグリッドを操作していません。私の戦車は速度に応じて数ピクセル前方に移動するだけなので、戦車は障害物だけでなく、任意のピクセルの組み合わせに配置できます。

今、私はこれをどのように処理しますか?衝突検出は範囲外です。ある種のグリッドまたはウェイポイントを使用することを余儀なくされていますか?

4

1 に答える 1

3

ナビゲーションメッシュソリューションを使用してみませんか?まさにあなたが探しているもののように見えます。これは、任意の多角形の障害物を持つaiナビゲーションのドメインを表す方法です。

githubは現在ダウンしていますが、このWebサイト(チェックする価値があり、興味深いJava実装です)によると、このプロジェクトにはPythonナビゲーションメッシュの実装があります。

編集

以下のコメントに基づいて、階層表現は実際にはあなたが探している答えに近いと思います。この記事は、ナビゲーション計算の速度を上げるために、ピクセルごとのグリッド(任意の形状の障害物を含む)をノードエッジグラフに抽象化する方法を説明する論文にリンクしています。このタイプの階層表現をd*などの動的ナビゲーションアルゴリズム(動的ナビゲーションアルゴリズムの概要についてはこの回答を参照)に組み込むことにより、問題の解決策を実装できるはずです。

于 2012-12-23T03:10:27.007 に答える