私はC ++で非常に貧弱な戦術RPGを書くことに手を出しました。これまでのところ、2Dタイルマップがあり、ウィキペディアの擬似コードに基づいて機能するA *アルゴリズムを取得しました。
しかし、実際の戦術RPGは、平面上で最適なパスを見つけてそこに移動するだけではありません。通常、移動範囲は限られているため、登り降りする必要があります。Final Fantasy Tacticsをプレイしたことがある場合、これらはMoveとJumpの統計の影響を受けます。これは私が迷子になる場所です。ターゲットへの最適なパスを見つけるようにA *アルゴリズムを変更する方法はありますが、パスは非常に多くのタイルだけです。高さの違いを考慮して統計をジャンプするにはどうすればよいですか?ギャップを飛び越える方法を実装するにはどうすればよいですか?
役立つ場合は、現在、私のマップはタイルオブジェクトのベクターで表されています。各タイルには、北、南、東、および西のタイルへのポインターがあり、マップの端に沿ってタイルが存在しない場合、またはタイルが非通過可能に設定されている場合、nullptrに設定されます。