0

你好,我正在制作一个去最近的宝箱的 PirateShip Actor。使用箱子的 ArrayList 我将如何在网格上找到离我的海盗船最近的箱子。先感谢您。

4

1 回答 1

1

如果您有 PirateShip 的位置和箱子的 ArrayList,那么我首先建议将箱子列表转换为箱子位置列表。然后:

Location loc = getLocation();
int lowest = Integer.MAX_VALUE;
Location closest = null;
for(Location l : locs)
{
    double dis = Math.sqrt(Math.pow(l.getRow() - loc.getRow(), 2) + Math.pow(l.getCol() - loc.getCol(), 2)); // Distance Formula
    if(dis < lowest)
    {
        lowest = dis;
        closest = l;
    }
}

这将设置为最接近列表中最近的位置,您可以使用 /* 在此处插入网格名称 */.get(closest) 来获取该位置的箱子

于 2013-01-30T05:20:51.863 回答