最简单的游戏寻路实现 这种寻路方法是之前在游戏应用到相对简单的游戏寻路方法, 通过客户端设计编辑 (X1, Y1) - (X2, Y2) 多段线段导出JSON格式:
// A点->B点的线段 [ // 起点 = A { x: 1, y: 4 }, // 终点 = B { x: 8, y: 5, } ] // C点->E点的线段 [ // 起点 = C { x: 3, y: 7 }, // 终点 = B { x: 6, y: 7, } ] 两点之间就能确定线段, 那么就可以转化成数学问题:
确定玩家的终点(x1,y1), 转化成 坐标系中求终点到多条线段的最小距离 数学运算, 反推出终点到哪条线段距离最短 现在已经确定好路径线段, 之后通过玩家起点(x2,y2)转化成 坐标系中求玩家点到选中线段的最小距离, 推出玩家启动选中路径最短距离 到这里已经确定好几段路径:
玩家终点应该走哪条预设路径最短线路: <point(x1,y1) -> line(x1,y1)>, 玩家起点到路径的最短线路: <point(x2,y2) -> line(x2,y2) > 最终线路组合: <point(x2,y2),玩家起点> -> <line(x2,y2),玩家距离最短距离> -> 走到端点 -> <point(x1,y2),路径端点到终点> 那么最后得出的路径就连接接起来就是这样: