我有一个程序可以检查距离以及玩家是否与障碍物发生碰撞。我现在正在尝试计算障碍数组中的哪个障碍最接近移动的玩家,然后返回该障碍的索引。
这是我到目前为止所拥有的:
public static int closestBarrier(GameObject object, GameObject[] barriers)
// TODO stub
{
int closest = 0;
for (int i = 0; i < barriers.length - 1; i++) {
if (Math.sqrt((object.getX() - barriers[i].getX())
* (object.getX() - barriers[i].getX()))
+ ((object.getY() - barriers[i].getY()) * (object.getY() - barriers[i]
.getY())) <= Math
.sqrt((object.getX() - barriers[i + 1].getX())
* (object.getX() - barriers[i + 1].getX()))
+ ((object.getY() - barriers[i + 1].getY()) * (object
.getY() - barriers[i + 1].getY()))) {
closest = i;
} else
closest = i + 1;
}
return closest;
}
我对 java 还是很陌生,所以我知道我已经拥有的可能不是很有效或最好的方法(甚至完全正确!?)。