protected static void InitializeTiles()
{
Vector3 upperLeftLoc = new Vector3();
Vector3 currentCenterPos = new Vector3();
int min, max, tileId;
upperLeftLoc.X = position.X - (tileSize.X * numTiles.X / 2.0f);
upperLeftLoc.Z = position.Z - (tileSize.Y * numTiles.Y / 2.0f);
upperLeftPos.X = upperLeftLoc.X + tileSize.X / 2.0f;
upperLeftPos.Z = upperLeftLoc.Z + tileSize.Y / 2.0f;
currentCenterPos.X = upperLeftPos.X;
currentCenterPos.Y = 0;
currentCenterPos.Z = upperLeftPos.Z;
for (int y = 0; y < numTiles.Y; y++)
{
currentCenterPos.X = upperLeftPos.X;
for (int x = 0; x < numTiles.X; x++)
{
tileId = (y * numTilesX) + x;
min = (tileId / numTilesX) * numTilesX;
max = min + numTilesX - 1;
mins.Add(min);
maxs.Add(max);
tiles.Add(new Tile(tiles.Count, new Vector3(currentCenterPos.X, currentCenterPos.Y, currentCenterPos.Z),
new Vector2(tileSize.X, tileSize.Y)));
currentCenterPos.X += tileSize.X;
}
currentCenterPos.Z += tileSize.Y;
}
lowerRightPos = new Vector3(tiles[tiles.Count - 1].Position.X + (tileSize.X / 2), 0,
tiles[tiles.Count - 1].Position.Z + (tileSize.Y / 2));
}