我在用C ++编写一个非常糟糕的战术RPG搞乱了。到目前为止,我已经有了一个2D瓦片贴图,并且刚刚使Wikipedia中基于伪代码的A *算法起作用。
但是,真正的战术RPG不仅会在平坦的飞机上找到最佳路径,然后再向那里移动。它们通常具有有限的移动范围,并且必须向上或向下爬。如果您曾经玩过《最终幻想战术》,则这些内容会受到“移动”和“跳跃”统计数据的影响。这是我迷路的地方。如何更改A *算法,以便找到通往目标的最佳路径,但是路径只有这么多图块?我应该如何考虑身高差异并考虑统计数据?我如何实现跨越差距?
如果有帮助,现在我的地图将由Tile对象的Vector表示。每个图块都有指向北,南,东和西图块的指针,如果那里不存在图块,例如沿着地图的边缘或将图块设置为不可通过,则将它们设置为nullptr。