我有一个在JPanel
. 如何获取每个图块的直角坐标?
问问题
539 次
1 回答
1
“基本”方法可能是做类似...
int tileWidth = 30;
int tileHeight = 30;
// Coordinates in the physical world, like a mouse point for example...
int x = ...;
int y = ...;
int col = (int)Math.floor(x / (double)tileWidth);
int row = (int)Math.floor(y / (double)tileHeight);
这将根据物理 x/y 坐标返回每个图块的虚拟网格 x/y 位置
然后,您可以使用类似...
int tileX = col * tileWidth;
int tileY = row * tileHeight;
平铺矩形然后变为tileX
x tileY
x tileWidth
xtileHeight
现在,虽然这有效。更好的解决方案是使用类似的东西java.awt.Rectangle
并维护List
它们中的一个,每个都代表现实世界中的一个单独的图块。
然后,您可以使用Rectangle#contains
来确定给定的图块是否包含您要查找的坐标。
这样做的另一个好处是可以使用和/或Rectangle
打印Graphics2D#draw
Graphics2D#fill
于 2014-03-20T04:12:41.207 回答