web-dev-qa-db-ja.com

優れた2Dグリッドベースの経路探索アルゴリズムとは何ですか?

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

私のゲームのレベルデザインはグリッドです(つまり、1つのセルから北/南/東/西のセルに移動するパスコストは1です)。グリッド内のさまざまな場所にさまざまな障害物があり、迷路のようですが、もっと小刻みな部屋。各レベルは400×200セルのオーダーです。

私はどこにいてもプレイヤーを探す敵を実装しようとしていますが、さまざまな経路探索アルゴリズムの1つを自分の状況に合わせて変換するのに苦労しています。私が遭遇したもののほとんど(A *やダイクストラなど)は、3Dまたははるかに複雑な2Dの状況に最も適しているようです。これらのアルゴリズムを大幅に簡略化して目的に合わせることができるのか、または深さ優先検索のようなものがレベルサイズを考慮してより効率的な代替策になるのかと考えていました。

14
creXALBO

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

14
Skrivener

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

7
Rezigned

EasyStar.js は、あなたがやりたいように見える素敵なライブラリです。私自身は使用していませんが、プロジェクトのgithubページのドキュメントはかなりよく見えており、おそらくあなたの立場で選択するでしょう。

2
TwentyMiles