【发布时间】:2020-05-31 17:48:33
【问题描述】:
以下图为例。考虑以下 -
- 蓝色方块是玩家
- 橙色广场是第一个目的地
- 粉色方块是第二个目的地
- 绿色方块是可步行的瓷砖
- 黑色方块是可行走瓷砖顶部的墙壁/障碍物
- 每个图块是 4x4
这里的预期行为是 -
- 走到橙色方块会导致直线向下
- 走到粉色方块(从蓝色方块)绕着黑色方块走近
我当前的实现采用瓷砖网格并将其交给典型的 A* 算法,以获得到每个正方形的最短路径。然而,仅仅因为一个图块上有一面墙并不意味着它是不可行走的——它应该意味着生成的路径不会穿过一个对象。
话虽如此,当前的实现导致了这种情况,因为我别无选择,只能坚持使用 4x4 网格,并且不将整个图块标记为不可行走,它会剪切对象。红色瓷砖无法行走。
它提供了一个非常笨拙的寻路系统,因为它会跳过非常精细的瓷砖(以红色表示)。我的问题是,我怎样才能使墙壁不能被剪裁,但它们所坐的瓷砖仍然可以行走?
【问题讨论】:
标签: javascript shortest-path path-finding game-development a-star