我在Android平台上遇到了我正在处理的应用程序的组织问题。该应用程序使用传感器作为输入,OpenGL作为输出。
假设非常简单的绘图代码和稍微复杂的控制系统代码,它们将尝试以60Hz的频率刷新。我正在寻找性能,可维护性和易于开发的含义,因此任何和所有输入都是有价值的。此外,对于Android或移动开发,我是一个完整的新手,所以如果你能向我展示第三种替代方案,那也很棒。
答案 0 :(得分:1)
有时候,过度规划事情可能会浪费时间。
不同的游戏使用不同的方法,您需要查看副本岛的开发博客和代码,以获取有关如何使用GLSurfaceView组织代码的各种提示。 http://replicaisland.net/
我使用你的后一种方法,但它并不像你看起来那么草率。 您在GLSurfaceView中并不需要任何逻辑代码,只需在发生某些事件时调用您的类。 (onDraw,onTouch,onKey等)
不确定这是什么样的草率,我在他们适当的课程中保持我的逻辑。 例如,在我的onDrawFrame()中,我只需执行MyAreaManager.draw(gl)
MyAreaManager类将维护它自己的逻辑并知道要绘制的内容。
至于时钟,你很可能想要两个线程。一个用于渲染(GLSurfaceView线程),另一个用于以特定逻辑帧速率运行的游戏逻辑。
逻辑框架只会改变画布对象的状态,并且绘制框架会尽可能快地绘制它们。
这样您可以尽可能快地渲染并仍然保持稳定的逻辑帧速率。