六角形瓷砖没有正确排列,中间有缝隙

Hexagon tiles not lining up properly, gaps inbetween

我正在尝试用六角形瓷砖绘制地图。但是,我正在努力让图块正确排列,因此它们之间没有 space。 一个是我通常使用的图块,一个是放大的,另一个图块是为了确保它不仅仅是我的抗锯齿游戏。

这是负责获取每个图块的像素坐标的代码。显然每个奇数行的偏移量都有一些计算错误,但简单地添加或减去一个像素只会增加间隙。

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);
}

此外 here's the tiles 我正在使用以防有人想知道。

您试过将 HEX_WIDTH 减 1 吗?

private static final float HEX_WIDTH = 96;

你的身高显然没有问题,因为你没有水平间隙。

将单个 Sprites 缩放 1.01f 减小了间隙的大小,足以认为这个问题已解决。