如何构建简单的Android应用程序

时间:2010-08-31 16:12:56

标签: java android oop opengl-es object

我在Android平台上遇到了我正在处理的应用程序的组织问题。该应用程序使用传感器作为输入,OpenGL作为输出。

  • 传统方法就是这样 喜欢将项目组织成一个 我有主要活动的MVC class加载一个OpenGL视图和一个 传感器处理类,然后 可能会注册一些回调或 可能在时钟上做。
  • 这个草率的替代方案是有一个实现GLSurfaceView和SensorEventListener的类,然后将逻辑卸载到其他类中。

假设非常简单的绘图代码和稍微复杂的控制系统代码,它们将尝试以60Hz的频率刷新。我正在寻找性能,可维护性和易于开发的含义,因此任何和所有输入都是有价值的。此外,对于Android或移动开发,我是一个完整的新手,所以如果你能向我展示第三种替代方案,那也很棒。

1 个答案:

答案 0 :(得分:1)

有时候,过度规划事情可能会浪费时间。

不同的游戏使用不同的方法,您需要查看副本岛的开发博客和代码,以获取有关如何使用GLSurfaceView组织代码的各种提示。 http://replicaisland.net/

我使用你的后一种方法,但它并不像你看起来那么草率。 您在GLSurfaceView中并不需要任何逻辑代码,只需在发生某些事件时调用您的类。 (onDraw,onTouch,onKey等)

不确定这是什么样的草率,我在他们适当的课程中保持我的逻辑。 例如,在我的onDrawFrame()中,我只需执行MyAreaManager.draw(gl)

MyAreaManager类将维护它自己的逻辑并知道要绘制的内容。

至于时钟,你很可能想要两个线程。一个用于渲染(GLSurfaceView线程),另一个用于以特定逻辑帧速率运行的游戏逻辑。

逻辑框架只会改变画布对象的状态,并且绘制框架会尽可能快地绘制它们。

这样您可以尽可能快地渲染并仍然保持稳定的逻辑帧速率。