好了,所以我试图让事情捕捉到网格我有。Java的网格对齐
这是我捕捉到画面本身:
int finalCalcX = (mouseX/Handler.gridSpace32) * Handler.gridSpace32;
int finalCalcY = (mouseY/Handler.gridSpace32) * Handler.gridSpace32;
变量名称说明了一切,我认为。 鼠标坐标除以我的图块为32x32像素,再次获得抓取到网格功能的次数。
现在这工作正常画面,但是当我想将它添加到“地图”本身,我不能只是添加我的地图x和y偏移到,它就会搞砸。
我已经玩了大约两天了,我也用它来捕捉到地图本身,但是当我说,在两个轴上的地图中途,mouseX和mouseY都会使网格东西了。 这是一种我很难解释,但是从0,0偏移量(每起源位置,甚至是屏幕)PLUS,当你从原点搬开地图偏移,被添加到光标本身和之间的距离透明的单元格对齐网格,我正在使用它来测试。 基本上,地图原点和相机之间的偏移是由于某种原因光标和透明图块之间的偏移量相同。因此,进一步进入地图我移动,渐行渐远的瓷砖从游标获取,并最终移动屏幕宽度和高度的外部... 当我进一步移动到地图,我要捕捉到网格功能保持一致,无论我在地图上的哪个位置。
Render方法:
for (int y = startY; y < endY; y++) {
for (int x = startX; x < endX; x++) {
gridSpace(graphics, (int) (x * Handler.gridSpace32 - handler.getCamera().getOffsetX()),
(int) (y * Handler.gridSpace32 - handler.getCamera().getOffsetY()));
checkHighlight(graphics);
}
}
的gridSpace是网格本身。 这里是重头戏,此刻什么:
int finalCalcX = (mouseX/Handler.gridSpace32) * Handler.gridSpace32;
int finalCalcY = (mouseY/Handler.gridSpace32) * Handler.gridSpace32;
graphics.setColor(new Color(100, 200, 100, 3));
graphics.fillRect(finalCalcX, finalCalcY, Handler.gridSpace32, Handler.gridSpace32);
对不起,我可怕的解释能力,但是这是我能做到的最好。 我在做什么错?
安置自己的渲染方法 –
完成,运算更新。 – Vauxe