Java 六边形瓷砖排列不当,中间有缝隙
我想画一张六边形的地图。然而,我正在努力使瓷砖正确排列,因此它们之间没有空间。一个是我通常使用的瓷砖,另一个是放大另一个瓷砖,以确保这不仅仅是抗锯齿在捉弄我 这是负责获取每个磁贴的像素坐标的代码。显然,对每一奇数行的偏移量都有一些计算错误,但简单地加上或减去一个像素只会增加间距Java 六边形瓷砖排列不当,中间有缝隙,java,libgdx,hexagonal-tiles,Java,Libgdx,Hexagonal Tiles,我想画一张六边形的地图。然而,我正在努力使瓷砖正确排列,因此它们之间没有空间。一个是我通常使用的瓷砖,另一个是放大另一个瓷砖,以确保这不仅仅是抗锯齿在捉弄我 这是负责获取每个磁贴的像素坐标的代码。显然,对每一奇数行的偏移量都有一些计算错误,但简单地加上或减去一个像素只会增加间距 private static final float HEX_WIDTH = 97; // 139 for colored tiles private static final float HEX_HEIGHT = (f
private static final float HEX_WIDTH = 97; // 139 for colored tiles
private static final float HEX_HEIGHT = (float) (Math.sqrt(3)/2 * HEX_WIDTH);
public Vector2 getHexCoordinates(Hexagon hex) {
float x = (float) HEX_WIDTH * hex.getGridX() * 3 / 4;
float y = (float) HEX_HEIGHT * (hex.getGridX() / 2 + hex.getGridY());
y = (hex.getGridX() % 2 == 0) ? y : y + HEX_HEIGHT / 2;
return new Vector2(x, y);
}
此外,我正在使用以防有人怀疑。您是否尝试过简单地将十六进制宽度减少1
private static final float HEX_WIDTH = 96;
<>你的高度很好,因为你没有水平的间隙。 < P>将单个精灵缩放1.01F,缩小了足够的间隙,以解决这个问题。这只会导致个别的六角瓦片变小,我注意到Y并没有持续增加(因为GRIDX/Y增加)。这是一个非常小的偏差,但取决于铺地板/成圆的方式,可能会产生间隙。没有铺地板/成圆。十六进制精灵不需要任何进一步的数学运算就可以得到坐标,绘图函数也使用浮点数。此外,间隙的宽度不会以任何明显的方式增加。从我看到的坐标检查结果来看,它们也是重复出现的。你有没有尝试过四舍五入到1或2位小数?实际上,四舍五入会产生不一致的间距,因为一旦达到阈值,偏移量就会增加/减少更多像素。