0

私はなんとかa*を実装し、正しいパスを取得しました。

問題は、すべてのノード(最後から最初まで)に親リンクがあり、最初のリンクがない場合、最初から最後までパスを再構築する方法です。そのため、私のキャラクターは最初にどこに行くべきかわかりません。

私がやっていることは、クローズドリストを返し、インデックス0からxまで、最後に到達するまでです。これは通常はうまく機能しますが、別の方法が必要であることを私は知っています。


また、隣接ノードをチェックするための最良の方法は何ですか?

各ノードを作成して長方形を作成し、それが交差するかどうかを確認しました。これにより、ノードが接続されていることがわかります。また、この手法をプレーヤーで使用して、ノードに到達したことを確認します。

ありがとう!!

4

1 に答える 1

1

ターゲットノードがあります(見つかったらキャッシュするだけです)。

parentツリーがないノードが見つかるまで(フィールドを使用して)ツリーを上に移動します。このノードがルートです。リンクを上って見つけた経路は、逆順の最短経路です。

私はかつて、A*ではなくBFSに関して同様の質問に答えました。

編集:スタックを元に戻す簡単な方法は、ターゲットからソースに移動するときにノードをスタックに配置し、ソースが見つかったら、スタックから要素をポップし始めることです。

于 2012-09-13T07:54:50.540 に答える