我有一個程序,檢查距離以及玩家是否與屏障相撞。我現在正在計算屏障陣列中哪個屏障距離移動的玩家最近,然後返回該屏障的指數。尋找最近的物體(屏障)給玩家
這是我到目前爲止有:
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,所以我明白我已經有可能不是很有效,或者做它的最佳方法(甚至就在所有!?)。
Yucky ...使用變量來存儲嵌套計算的結果,它非常* undebuggable *。 – sp00m 2013-03-25 13:20:09