我有一个由行和列六边形组成的地图
这不是我正在使用的十六进制映射的实际图像,但使用相同的大小和形状六边形
当用户点击时,我需要能够分辨出哪一个鼠标结束了
每个Hexagon都由一个"Tile"类的实例表示,但是它不包含任何位置特定的数据,甚至不包含多边形,所以基本上唯一的方法就是知道它在特定六边形的位置.二维数组.
之前我使用过方格,并且相对容易确定选择了哪个方格,因为像素也是方形的,
// example where each square is 10 by 10 pixels:
private void getClickedSquare(MouseEvent me)
{
int mouseX = me.getX();// e.g. 25
int mouseY = me.getY();// e.g. 70
int squareX= (int) (mouseX / 10);// in this case 2
int squareY= (int) (mouseY / 10);// in this case 7
//then to access the tile I would do
map.squares[squareX][squareY].whatever();
}
Run Code Online (Sandbox Code Playgroud)
但我甚至不确定从哪里开始使用Hexagons,有没有人有任何经验?
我不能使用多边形(Java),因为当我在屏幕上移动地图并增加它的大小时,我会遇到每帧更新大量多边形的问题.虽然我可以检查地图的任何一个平铺的多边形中是否包含一个点!
目前显示的六边形只是BufferedImages.
如果您想了解更多信息,请询问,谢谢您的时间:D