寻找最接近的可能坐标
Finding closest possible coordinates
我有这样的 x,y 坐标板:
棋盘最大为 100x100。
其中 myPosition 是金色,destinations 是绿色,collisions 是红色。 myPosition
是对象 destinations
并且 collisions
是对象数组:
let myPosition={x:0,y:0};
let destinations = [{x: 0, y: 5}, {x: 2, y: 0}, {x: 2, y: 2}];
let collisions = [{x: 1, y: 0},{x: 1, y: 1},{x: 1, y: 2},{x: 1, y: 3},{x: 1, y: 4},{x: 2, y: 1},{x: 2, y: 0},{x: 2, y: 1}]
使用 this code (live demo) 我可以找到最近的目的地,但它根本不知道碰撞。我不知道如何编写算法来检查碰撞并在上面的场景中给出输出 0,5
。
还有假设我们不能斜着走
我发现 this SO answer 似乎为我的问题提供了答案,但我无法让它与我的输入数组一起使用。
我使用了 pathFinding.js 库,发现很简单:
currentPath = finder.findPath(heroCoords.x,
heroCoords.y,
monstersCoords[i].x,
monstersCoords[i].y,
currentGrid);
我有这样的 x,y 坐标板:
棋盘最大为 100x100。
其中 myPosition 是金色,destinations 是绿色,collisions 是红色。 myPosition
是对象 destinations
并且 collisions
是对象数组:
let myPosition={x:0,y:0};
let destinations = [{x: 0, y: 5}, {x: 2, y: 0}, {x: 2, y: 2}];
let collisions = [{x: 1, y: 0},{x: 1, y: 1},{x: 1, y: 2},{x: 1, y: 3},{x: 1, y: 4},{x: 2, y: 1},{x: 2, y: 0},{x: 2, y: 1}]
使用 this code (live demo) 我可以找到最近的目的地,但它根本不知道碰撞。我不知道如何编写算法来检查碰撞并在上面的场景中给出输出 0,5
。
还有假设我们不能斜着走
我发现 this SO answer 似乎为我的问题提供了答案,但我无法让它与我的输入数组一起使用。
我使用了 pathFinding.js 库,发现很简单:
currentPath = finder.findPath(heroCoords.x,
heroCoords.y,
monstersCoords[i].x,
monstersCoords[i].y,
currentGrid);