
目前在做一块2d格子移动的游戏,游戏中的移动通过点击自动寻路实现
现在有一个问题是如果判断两个格子之间的行动路径是否有东西,比如上图,黑方块是主角从左下移动到右上的路线,这样子需要检测的格子就是蓝色点的格子是否有墙,如果有就不能直接移动过去,而要转弯
现在自己无法得出用什么算法准确判断两点之前有没有墙会堵住,想问问大佬们有什么办法可以解决这个问题

目前在做一块2d格子移动的游戏,游戏中的移动通过点击自动寻路实现
现在有一个问题是如果判断两个格子之间的行动路径是否有东西,比如上图,黑方块是主角从左下移动到右上的路线,这样子需要检测的格子就是蓝色点的格子是否有墙,如果有就不能直接移动过去,而要转弯
现在自己无法得出用什么算法准确判断两点之前有没有墙会堵住,想问问大佬们有什么办法可以解决这个问题
a*寻路算法
我已经实现了A*寻路了,但是我不希望他是单纯的一格一格的走的,所以希望优化成两格之间如果没有障碍物,就直接走过去,不被限制住一格一格的移动
a*寻路找到路后进行路径判断啊,如果路径是一条直线则可以直接移动到最后一个节点就行了。

这里是这个情况,如果我按A*寻路出来,因为我是一格为单位,所以他会走黑色那条路线走过去,但是我希望这中间没有墙的时候,他直接按蓝色那条线走过去,这样子会感觉比较自然
按你说的情况,目前来说黑色的路径不是一条直线,就是想优化成一条直线的情况
使用物理引擎,射线检测可以实现你的要求
用射线的话,是要用对角线的顶点去做吗,如果频繁的发射射线性能消耗大吗?
自顶一下
再顶一下
我尝试一下这个,另外大佬知道想这样的路线如何优化成弧线而不是纯直线吗,如下图我画红线的地方
