从x / y位置在网格上平铺id

时间:2016-12-12 05:11:09

标签: java algorithm grid

(这张图片不是我的,但它有助于说明这一点)

enter image description here

给这个网格设置每个平铺32x32像素,如何计算鼠标所在的平铺ID?

在这种情况下,鼠标位于磁贴上:40。

1 个答案:

答案 0 :(得分:1)

让我们说当前鼠标位置是(x,y)并且每个小方块的长度是l(在给定情况下32)。然后,网格x和y值将由下式给出:

gridX = x/l; //be sure it is integer division and not float
gridY = y/l; //

然后根据这些值计算图块ID:

currentTileId = (boxesEachRow * gridY) + gridX + 1;

其中boxesEachRow是每行的方框数(此处为8)。如果您将第一个框的id视为1而不是0,则需要加1。