LWJGL / Slick-Util渲染问题

时间:2011-11-18 07:41:09

标签: java lwjgl

我正在制作游戏,我正在尝试绘制我们的徽标,当我绘制它时有一个黑色边框,这里有一些代码(仅用于徽标渲染)

在GuiLoading.java中绘制徽标的代码

    @override
    public void ex() throws IOException{
            GL11.glColor3f(255, 255, 255);
            drawRec(0, 0, Client.width, Client.height);

            Texture logo = TextureLoader.getTexture("PNG", ResourceLoader.getResourceAsStream("misc/hslogo.png"));
            logo.bind();
            drawRecWithTexture(Client.width / 4 , Client.height / 4, Client.width / 4 + 400, Client.height / 4 + 356);
    }

和'drawRec'和'drawRecWithTexture'空洞的代码

public void drawRecWithTexture(int i, int j, int k, int l)
{
    GL11.glPushMatrix();
    GL11.glBegin(GL11.GL_QUADS);
        GL11.glTexCoord2d(0, 0);
        GL11.glVertex2i(i, j);
        GL11.glTexCoord2d(0, 1);
        GL11.glVertex2i(i, l);
        GL11.glTexCoord2d(1, 1);
        GL11.glVertex2i(k, l);
        GL11.glTexCoord2d(1, 0);
        GL11.glVertex2i(k, j);
    GL11.glEnd();
    GL11.glPopMatrix();
}

public void drawRec(int i, int j, int k, int l)
{
    GL11.glPushMatrix();
    GL11.glBegin(GL11.GL_QUADS);
        GL11.glVertex2i(i, j);
        GL11.glVertex2i(i, l);
        GL11.glVertex2i(k, l);
        GL11.glVertex2i(k, j);
    GL11.glEnd();
    GL11.glPopMatrix();
}

和输出图像:

Output

2 个答案:

答案 0 :(得分:0)

确定。我知道我家里有代码。但我相信你想补充一下:

GL11.glEnable(GL11.GL_BLEND);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);

下面

GL11.glColor3f(255,255,255);

此外,如果您正在完全2D进行操作,请查看整个Slick库,这样可以让生活变得更轻松。

答案 1 :(得分:0)

如果我没弄错的话,因为纹理图像的尺寸不是2(32,64,128等)的强度,请尝试使用Paint.net或Gimp等软件来调整它的大小。