我有一个平铺系统,其中每个平铺都是 32x32 像素。我正在尝试创建一个函数,其中基于 xy 坐标参数返回平铺类型,但我很难弄清楚如何正确地将 xy 坐标转换为我拥有的 32x32 网格系统。
function getTileAtCoordinates(x, y) {
if (x < 32) x = 32;
if (y < 32) y = 32;
xTile = x;
xTile = xTile - (x % 32);
xTile = x / 32;
yTile = y;
yTile = yTile - (x % 32);
yTile = y / 32;
return getMapTile(xTile, yTile);
}
getMapTile 函数显然从二维数组(x 和 y)中获取瓦片类型。出于某种原因,该函数偶尔会尝试使用十进制值,如果我的数学是正确的,这不应该发生 - 因为十进制值永远不会传递给函数。
编辑:我基本上想要完成的是,如果坐标为 (32, 32),则转换为 (1, 1),而 (65, 33) 将转换为 (3, 2)。