我想从另一个节点得到距离最近的节点(如果有一个节点)的距离"看"在一个特定的方向。
在图像中," P"是播放器的节点,线是要查看的方向。 circe是另一个节点,越过方向线。
获取2个节点之间的距离不是问题,但如何访问最接近我的线路的最近节点?
答案 0 :(得分:1)
我假设你的精灵有一些半径,crossing my line
表示从直线到精灵中心的距离小于半径。
让playur点为P,方向角为Fi,因此单位方向向量为
dx = cos(fi)
dy = sin(fi)
和线方程是
- x * dy + y * dx + q = 0
where
q = dy * p.x - dx * p.y
要找到从精灵中心到此线的距离,请将x和y替换为center.x和center.y
dist = - center.x * dy + center.y * dx + q
所以浏览精灵列表,检查精灵是否相交(dist < spriteRadius
)并从交叉精灵中选择最近的精灵