带有 slick2d 图形转换的图像怪异

Image weirdness with slick2d graphics translation

我正在制作游戏,我注意到每当我使用 graphics.translate 函数时,在翻译之后图像就会发生这种情况。

翻译前

翻译后

我想知道是否有办法解决这个问题,或者其他人有同样的问题。所有这些精灵都是从 spritesheet

编辑:翻译代码

public void translate(Graphics g, GameContainer container, int delta) {
        g.translate(((container.getWidth() / 2) - this.x), ((container.getHeight() / 2) - this.y));
    }

    public void update(GameContainer container, int type){
        if (type == 0) {
            x = p.getX(); //p is the player
            y = p.getY();
        } else if (type == 1) {
            x = player.x;
            y = player.y;
        }

        if (offset) {
            if (this.x - container.getWidth() / 2 < offsetMin[0]) {
                x = offsetMin[0] + container.getWidth() / 2;
            } else if (this.x + container.getWidth() / 2 > offsetMax[0]) {
                x = offsetMax[0] - container.getWidth() / 2;
            }

            if (this.y - container.getHeight() / 2 < offsetMin[1]) {
                y = offsetMin[1] + container.getHeight() / 2;
            } else if (this.y + container.getHeight() > offsetMax[1]) {
                y = offsetMax[1] - container.getHeight() / 2;
            }
        }
    }

尝试将 g.translate() 的 x 和 y 参数转换为整数。这将消除任何舍入错误,其中瓦片不会以完美的像素坐标结束(IE 4,而不是 4.2)。

将评论中的答案移至答案,以便将其标记为已被 OP 接受