我正在尝试为3D安卓游戏构建一个游戏框架。我正在尝试使用本教程
http://www.javacodegeeks.com/2011/07/android-game-development-game-loop.html
我能够让2D游戏框架正常运行。然后教程继续使用android的OpenGL功能,但不在游戏框架中使用它。
我的问题是,因为我使用一个单独的线程来调用我的更新和绘制方法,它们是否相当于我使用android OpenGl GL10类对画布做的事情?
try
{
canvas = this.surfaceHolder.lockCanvas();
synchronized (surfaceHolder)
{
//Update and draw code here
}
}
finally
{
surfaceHolder.unlockCanvasAndPost(canvas);
}
虽然这应该是我的程序中使用opengl GL10类的唯一对象,但我想确保我可以控制GL10相机,如果这是最好的方法呢?
答案 0 :(得分:1)
我不确定我是否理解Canvas API和表面支架的东西。但是,在Android上使用OpenGL,GLSurfaceView
似乎就是您想要的(code)。它派生自SurfaceView,并使用EGL
进行低级表面管理。它已经启动了第二个渲染线程,调用Renderer
方法。您可能需要查看threading model of Replica Island; Chris使用第三个线程来更新游戏世界。