Shi*_*gon 11 android opengl-es game-loop
从我所看到的,如果我想做一个非opengl游戏循环我可以做的是有一个游戏线程,在循环期间将更新游戏状态(或游戏物理),并通过锁定a Canvas来更新图形(正常)SurfaceView,通过Canvas.drawXXX(...)方法进行绘图,然后将其解锁,此时图形将更新为循环.
使用GLSurfaceView和时,我真的不知道如何做到这一点Renderer.根据我的理解,我不能再像我在常规表面那样按照手工制作的gameThread绘制Canvas,因为现在有一个渲染线程会调用Renderer.onDrawFrame()(在我实现的渲染器类中,我传递给GLSurfaceView).
那么我的问题是,用GLSurfaceView和Renderer制作游戏循环的好方法是什么?我是否仍然应该制作单独的游戏线程,但只处理其中的游戏状态(物理)更新,然后在我的Renderer.onDrawFrame()实现中使用该游戏状态来实际绘制基于当前状态的图形?我应该只使用Rendere的线程来进行状态更新吗?
好吧,事实证明,最好的方法是使用GLSurface提供的线程.它的钩子来自Renderer接口的实现.实际上,Renderer的onDrawFrame()方法可以被认为类似于常规Thread的run()方法.这种抛出窗口的每秒固定更新范式的概念(不是真的,但在这种情况下它太复杂)但另一方面,你获得了最佳的图形更新.
这里有关于Android和OpenGL的精彩教程:
http://insanitydesign.com/wp/projects/nehe-android-ports/
| 归档时间: |
|
| 查看次数: |
6469 次 |
| 最近记录: |