2011-09-04 173 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。 –