2011-09-04 61 views
0

我想要在Android遊戲中使用虛擬dpad,以便當您觸摸向前按鈕時,相機向前/向後/向左/向右移動(但是爲他們各自的方向)。我能夠畫出紋理立方體來表示地板,但現在我被困在繪製我的虛擬dpad。我的嘗試是這樣做的錯誤方式是在我的繪圖函數中有一個畫布(我通常如何繪製2d對象)和opengl調用。同時繪製一個2D位圖和一個3D模型

@Override 
public void onDrawFrame(GL10 gl) { 

    // TODO Auto-generated method stub 
     gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT); 
     Canvas c = new Canvas(); 
     c.drawBitmap(bitmap, 0, 0, new Paint()); 

     gl.glLoadIdentity();    
     for(int i =0;i<91;i++) 
      { 
       myfloortiles[i].draw(gl); 
      } 
} 

位圖是一個設置爲實際值的png圖像。 你會如何在前景中繪製一個2d位圖來作爲擡頭顯示或按鈕?我應該搜索什麼?

回答

2

繪製完3D場景後,需要更改爲正交投影(如果是固定功能管線,則需要glOrtho),並重置矩陣堆棧(glLoadIdentity(),如果是固定功能)。

通過這樣做,您的3D場景繪製得當,然後在其上繪製2D/Ortho HUD/GUI。

glOrtho

glLoadIdentity

+1

不要忘記改變glMatrixMode當您設置的正投影到GL_PROJECTION。 –