1

我正在尝试使用 slick util 在屏幕中央显示徽标。

texture.bind();
glBegin(GL11.GL_QUADS);
glTexCoord2f(0, 0);
glVertex2f(x, y);
glTexCoord2f(1, 0);
glVertex2f(x + texture.getTextureWidth(), y);
glTexCoord2f(1, 1);
glVertex2f(x + texture.getTextureWidth(), y + texture.getTextureHeight());
glTexCoord2f(0, 1);
glVertex2f(x, y + texture.getTextureHeight());
glEnd();

但是当它渲染时,纹理没有居中,并且在右侧绘制了一条随机线。我不知道为什么。谢谢。

4

1 回答 1

1

修复:使您的图像成为 2 的幂。我这样做了,它现在可以工作了:D

我可以保证这一点。我使用 LWJGL 渲染我正在制作的游戏中的所有内容,并使用它渲染背景,这没关系,但是当我渲染的东西小于显示器的完整尺寸时,它会显示随机线条并且图像是倾斜的。这是截图图片;http://imageshack.us/f/39/problema.png/ <<<<--- 看到大约三分之一处的分割线,以及左侧的线。

这是我的代码;

        ImageLoader.STAT_BAR.bind();

    GL11.glBegin(GL11.GL_QUADS);
        GL11.glTexCoord2f(0,0); //TOP LEFT
        GL11.glVertex2f(0,0);
        GL11.glTexCoord2f(1,0); //TOP RIGHT
        GL11.glVertex2f(ImageLoader.STAT_BAR.getTextureWidth(),0);
        GL11.glTexCoord2f(1,1); //BOTTOM RIGHT
        GL11.glVertex2f(ImageLoader.STAT_BAR.getTextureWidth(), ImageLoader.STAT_BAR.getTextureHeight());
        GL11.glTexCoord2f(0,1); //BOTTOM LEFT
        GL11.glVertex2f(0, ImageLoader.STAT_BAR.getTextureHeight());
    GL11.glEnd();
于 2011-12-23T17:07:23.403 回答