2010-08-31 60 views
3

我遇到了与我正在使用的应用程序在Android平台上的组织问题。该应用程序使用传感器作为输入,OpenGL作为输出。如何构建简单的Android应用程序

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

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

+0

如果您是Android新手,请先阅读以下链接:http://developer.android.com/guide/topics/fundamentals.html – adamp 2010-08-31 18:14:48

+0

我没有看到任何与问题高度相关的内容。我不是在字面上问如何做事,而是为了高层次的设计方法。 – Novikov 2010-08-31 20:15:26

回答

1

有时,计划过度的事情可能会浪费时间。

不同的游戏使用不同的方法,你会想看看副本岛的开发博客和代码的各种提示如何使用GLSurfaceView组织您的代码。 http://replicaisland.net/

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

不确定这是什么赘述,我维持我的逻辑适当的类。例如,在我的onDrawFrame()中,我简单地做MyAreaManager.draw(gl)

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

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

逻辑框架将简单地改变画布对象的状态,而并条画框将尽可能快地绘制它们。

这样你渲染尽可能快,仍然保持稳定的逻辑帧速率。