寻找一种轻量级的方法来查找半径内的对象。
到目前为止,对我来说显而易见的答案是遍历每个对象,将其 x 和 y 位置与半径中心进行比较。
例子:
Turret
- 寻找半径内的目标。
TargetArray
- 可能的目标数组。
WithinRangeArray
- 我们将适用目标推送到的数组
Distance^2 = (TargetArray[n].x - Turret.x)^2 + (TargetArray[n].y - Turret.y)^2
if( Distance^2 < maxRadius^2 ){
WithinRangeArray.push(TargetArray[n])
}
避免平方根应该可以节省一些处理能力。但我感觉可能还有其他算法/理论/方法可能更好(更轻量级)。
TargetArray 的理想长度:一次少于 500 个目标。