2013-02-21 106 views
1

我已經有我的遊戲加載了在正確的尺寸,顯示背景和播放一些背景音樂,這應該是一個登錄畫面,我從來沒有與圖形之前搞砸,雖然我知道如何編寫大部分的服務器/客戶端通信以便不會成爲問題。的OpenGL圖像繪製

如何繪製多幅圖像,以及如何將它們放在我想要的位置?

更重要的是,OpenGL是否支持PNG圖像的「透明」功能?因爲這就是我開發我的啓動畫面由具有半透明登錄框,半透明按鈕等

我知道如何加載圖像,雖然畫他們是一個不同的故事..

public void drawStartScreen() { 
     Color.white.bind(); 
     c.getAssets().backgroundImage.bind(); // or GL11.glBind(c.getAssets().backgroundImage.getTextureID()); 
     GL11.glBegin(GL11.GL_QUADS); 
     GL11.glTexCoord2f(0, 0); 
     GL11.glVertex2f(0, 0); 
     GL11.glTexCoord2f(1, 0); 
     GL11.glVertex2f(c.getAssets().backgroundImage.getTextureWidth(), 0); 
     GL11.glTexCoord2f(1, 1); 
     GL11.glVertex2f(c.getAssets().backgroundImage.getTextureWidth(), 
       c.getAssets().backgroundImage.getTextureHeight()); 
     GL11.glTexCoord2f(0, 1); 
     GL11.glVertex2f(0, c.getAssets().backgroundImage.getTextureHeight()); 
     GL11.glEnd(); 

     if(playMusic == true) { 
      c.getAssets().backgroundMusic.playAsMusic(1.0f, 1.0f, true); 
      playMusic=false; 
     } 
    } 

我不明白如何使用上面的代碼來移動圖像,所以我不能寫我自己的方法來「填充」上面的代碼與「參數」。

我試圖讓我的輔助圖像繪製到客戶端的中間,我知道人們會看不起我,這雖然這就是我說的是哪裏的一些輕微的例子我編程經驗來自於爲Runescape創建多年的基於服務器的模擬器,因此下面我將留下一張圖像,顯示背景上的「登錄框」。這些按鈕透明並帶有黑色邊緣,可讓您看到它下面的登錄框,除了黑色邊框的繪製位置。

這就是我的意思是「透明」的支持:

img

回答

1

我已經有我的遊戲加載了在正確的尺寸,顯示背景

如果按照互聯網上散佈的許多糟糕教程之一,你可能做錯了。 OpenGL是一個狀態機,這意味着你可以在需要時改變任何你想要的東西。

大多數教程將glViewport和投影矩陣設置放在窗口調整大小處理程序中。如果僅顯示沒有其他元素的場景,這將起作用。但在像你這樣的情況下,這種設置相當不方便。

只是做簡單的事情:您可以更改視口和投影到任何適合您的需求最好的,當你需要它。你想要在屏幕上居中畫一個圖像?只需設置視口和投影,你需要它:

glViewport(0, 0, win_width, win_height); 
aspect = win_width/win_height; 
projection_ortho(-aspect, aspect, -1, 1); 

更重要的是,不支持OpenGL PNG圖像的「透明」功能?

是的,這就是所謂的混合。

+0

你能或許鏈接我的教程,演示如何使用OpenGL正確的話,因爲一切都表明得到更多的每一次較爲混亂,另外,我找不到OpenGL的projection_ortho什麼不同的方法,是我必須做出一個自定義的空白? 然而,有一個GL_ProjectionMatrix – 2013-02-21 23:43:06

+1

@ChristianTucker:這只是對於正投影設置的幾行的簡寫。但是,如果您問這些問題清楚地表明您需要退後一步並完成OpenGL基礎知識。首先也是最重要的:忘記固定功能管道。它已經過時,自2004年以來,每個GPU都可以通過着色器進行編程。作爲教程,我建議Nicol Bolas的http://arcsynthesis.org/gltut - 遵循它,你對做什麼有着深刻的理解。 – datenwolf 2013-02-22 00:11:59

+0

謝謝你,是的,因爲我曾經說過我以前沒有使用圖形的經驗,並且網上的教程都嚴重地將我送到各地。 – 2013-02-22 00:19:00