ゲームを作成していて、コードに実装するのが難しい部分に遭遇しました。私のゲームはタイルベースのプラットフォーマーで、たくさんの敵があなたを追いかけています。基本的に、理論的には、敵がフレーム/秒/2 秒ごとに、プレイヤーへの現実的で最短のパスを見つけられるようにしたいと考えています。元々A-starが解決策だと思っていたのですが、敵を重力に逆らう道に誘導してしまい、良くありません。また、複数の敵が毎秒それを使用して最新のパスを取得し、その最初の数タイルを歩きます。そのため、パスの残りの部分は毎秒破棄され、最初の数タイルだけがたどられます。複数の敵がいる場合、毎秒同時に新しいパスを計算するのは大変なことのように思えますが、私が望むものを達成する他の方法はわかりません。これは私が欲しいものの写真です: 説明: 緑色の人物がプレイヤー、赤色の人物が敵です。灰色のタイルは通常の開いたタイルで、何もタイルはありません。茶色のタイルは立つことができるタイルです。そして最後に、強調表示された黄色のタイルは、現実的にプレイヤーに到達するために、敵が見つけられるようにしたいパスを表しています. SO、質問は次のとおりです。これを取得するために使用できる現実的な経路探索アルゴリズムは何ですか? 速さを保ちながら?
編集* 私は、可能な限り最も複雑な地図を表すために写真を更新しました。このマップは、私のゲームのプレーヤーが実際に見ているものを表しています。彼らは WASD を使用するだけで動き回ることができ、この 2D プラットフォーム ビューを移動する自分自身を見ることができます。彼らはさまざまなタイプの敵になり、すべて速度とジャンプの高さが異なります。しかし、全員がこのマップでジャンプして移動するのに十分なジャンプの高さと速度を持っています。マップは、レベル データを含む XML ファイルを読み取るだけで生成されます。次に、データが解析され、XML の内容に従って、さまざまな種類のタイルがスプライトを保持するタイルに配置されます。EX( XML ノード: (type="reg" graphic="grass2" x="5" y="7" ) したがって、x と y は定数 gridSize (30 など) で乗算され、それに応じて配置されます。敵は、敵にアタッチされた AI クラスからフレームごとの指示を受け取ります。このクラスは、このパスを生成し、敵に最初の方向を返す責任があります。これは、敵が古い間違ったパスをたどらないように、1 秒ごとに発生する必要があります。私のコンセプトを理解しているかどうかを教えてください。また、考えやアイデア、または私が探している答えがあれば教えてください。また、このゲームの物理は経路探索とは別のものであり、AABB 対 AABB の概念 (プレイヤーと敵も AABB である) を使用してうまく機能します。このクラスは、このパスを生成し、敵に最初の方向を返す責任があります。これは、敵が古い間違ったパスをたどらないように、1 秒ごとに発生する必要があります。私のコンセプトを理解しているかどうか教えてください。何か考えやアイデアがあるか、私が探している答えさえあれば教えてください。また、このゲームの物理は経路探索とは別のものであり、AABB 対 AABB の概念 (プレイヤーと敵も AABB である) を使用してうまく機能します。このクラスは、このパスを生成し、敵に最初の方向を返す責任があります。これは、敵が古い間違ったパスをたどらないように、1 秒ごとに発生する必要があります。私のコンセプトを理解しているかどうかを教えてください。また、考えやアイデア、または私が探している答えがあれば教えてください。また、このゲームの物理は経路探索とは別のものであり、AABB 対 AABB の概念 (プレイヤーと敵も AABB である) を使用してうまく機能します。