0

こんにちは私は一番近い宝箱に行くPirateShipActorを作っています。チェストの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 に答える