2

我想指出,我对 Android 游戏开发还很陌生。我尝试了几种游戏编程方法,发现两者都有效,但它们都有自己的优势。所以我想知道哪种方式更好/更常见。例如,如果我们正在尝试制作拼图游戏,我们需要许多相互交互并响应触摸事件的拼图对象。

方式一:

正如我从 java 中学到的,如果您有许多行为方式相同的对象,您应该创建类,然后创建该类的对象。我在游戏项目中尝试了这个并创建了扩展 ImageView 的类“PuzzlePiece”。然后在我的主程序中,我将它们添加到我的布局中并将它们从主活动中移出。这是相当复杂和缓慢的。而且感觉这不是正确的方法。

方式二:

我将我的游戏对象添加为组件(例如 ImageView、ImageButton、带有图像背景的自定义布局)。这样我可以更好地控制它们,同时拥有许多对象并让它们相互交互更容易。但是这种方法很慢,而且感觉也不是正确的方法。

方式3:

我在 Activity 中添加了 SurfaceView,并使用 draw() 方法在画布上绘制了我的所有对象。这种方法要快得多,但这样我对我的对象的控制就更少了。例如,在画布上绘制许多对象并让它们都响应触摸事件或相互交互更难实现。

还有其他我错过的方法,或者我的方法之一接近正确的方法吗?

4

2 回答 2

1

您可以使用 android 类构建东西,或者如果您足够熟练,您可以从类似 andengine.org 或其他一些使用 opengl es 的开源游戏引擎开始,其方式主要是从您那里抽象出 opengl es 部分。您仍然需要进行大量配置,但不会像您从头开始构建基于 opengl 的应用程序那样糟糕。

andengine.org

还有相当多的其他开源 android 游戏引擎得到了开发社区的大力支持。做一些谷歌搜索并检查一下。否则,正如您注意到的那样,您想要在游戏方面完成的大多数事情最终会变得非常缓慢和笨拙,使用普通的 android 视图。

于 2013-02-05T00:22:22.383 回答
1

在原生android方式中,我认为方式3是正确的。但是正如您之前所经历的那样,它非常混乱且难以处理(取决于设备或操作系统版本,您将面临 GC 严重的丢帧。

如果你只是在锻炼,方式1很容易理解Android的架构。方式 3 可以训练您的布局渲染技术。但永远不要考虑在市场上发布。您将获得 Android 碎片化的可怕体验。

如果您想创建将在市场上发布的真实游戏,则必须使用 OpenGL。有几种游戏引擎可以使用 OpenGL。

于 2013-02-05T00:29:23.410 回答