2011-11-18 138 views
0

我正在製作一款遊戲,並且我正在嘗試繪製我們的徽標,當我繪製它時有一個黑色邊框,下面是一些代碼(僅適用於徽標渲染)LWJGL/Slick-Util渲染圖

代碼繪製標誌在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

+0

你是說它忽略了alhpa? –

+0

你是什麼意思'alhpa' –

+0

對不起,錯字,阿爾法..如在alpha通道。 –

回答

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庫整體使生活更容易。

+0

我使用Slick已經 –

+0

沒有,沒有工作 –

+0

不,它看起來像你使用Slick-Util不是完整的光滑的庫 –

0

如果我沒有弄錯它是因爲紋理圖像的尺寸不是2的冪(32,64,128等),請嘗試使用Paint.net或Gimp等軟件來調整它的大小。