14

現在、HTML5 <canvas> 要素を使用して Javascript で 2D ゲームを作成しています。とても順調に進んでいますが、問題が発生しました。

私のゲームのレベル デザインはグリッド (つまり、1 つのセルから北/南/東/西のセルに移動するパス コストは 1) であり、グリッド内のさまざまな場所を占めるさまざまな障害物があります。より多くのゆらぎの余地。各レベルは 400 × 200 セル程度です。

どこにいてもプレイヤーを探し出す敵を実装しようとしていますが、さまざまな経路探索アルゴリズムの 1 つを自分の状況に合うように変換するのに苦労しています。私が遭遇したもののほとんど (A* や Dijkstra など) は、3D またははるかに複雑な 2D の状況に最も適しているようです。これらのアルゴリズムを劇的に単純化して私の目的により適したものにすることができるかどうか、または深さ優先検索のようなものがレベル サイズを考えるとより効率的な代替手段になるかどうか疑問に思っていました。

4

3 に答える 3

14

A* は非常に一般的な 2D 経路探索アルゴリズムです。パスファインディングに慣れていない場合、何が起こっているのか理解するのに少し時間がかかるかもしれませんが、それほど複雑ではありません。意図したよりも複雑なアプリケーション用に開発された、他の誰かのサンプル コードを見ているだけかもしれません。アルゴリズムを理解するための優れたチュートリアルがここにあります

于 2013-06-15T23:59:41.280 に答える
7

これをチェックしてください https://github.com/qiao/PathFinding.jsこれには、多くのデモとパス検索アルゴリズムがあります。

于 2013-06-15T23:59:39.597 に答える