【发布时间】:2014-11-20 06:17:08
【问题描述】:
好的,所以我有我的等轴测图,其中每个图块的宽度为 64,高度为 32。 这是我想出的放置瓷砖的方程式
xPos = (this.getPos().getX() - this.getPos().getY()) * (64 / 2) - Main.gameWindow.getCamera().getxOffset().intValue();
xPos -= 32;
yPos = (this.getPos().getX() + this.getPos().getY()) * (32 / 2) - Main.gameWindow.getCamera().getyOffset().intValue();
我将 xPos 减去 32 以弥补图块的原点在最左角的事实。
我一直在尝试做的是找到鼠标下方的图块。 所以首先我尝试简单地反转方程式(我确信它会起作用) 这是我反转时得到的代码。
int yMouseTile = ( (cursorY / (32 / 2) - (cursorX / 32)) / 2 );
int xMouseTile = ( (cursorX / 32) + yMouseTile);
这只是一种工作。但事实证明,此代码实际上将每个图块视为正方形,而不是菱形。
下一个奇怪的部分是,当我的鼠标经过磁贴的中心时,磁贴会发生变化。所以应该发生的是,我的鼠标应该越过瓷砖的边缘,然后它会变为下一个。但相反,它的作用就像瓦片的中心实际上是边缘一样。
但实际上,我想要的只是让我的鼠标像这样工作的方程式 http://www.tonypa.pri.ee/tbw/tut18.html
在该链接上,单击“单击此处开始”按钮,然后观察鼠标如何与图块交互。这是我的目标:),谢谢
附:我尝试了无数不同的方程式,其中许多与我上面的方程式具有完全相同的结果
【问题讨论】:
标签: java mouse iso tile isometric