0

我正在尝试学习如何在 Android 上制作视频游戏,因此我需要一些体面的教程来了解如何使用 SurfaceView 对象在 Android 上制作图形。然而,我尝试过的每一个图形教程(主要是 SurfaceView 的东西)都失败了。请注意,我不想使用 XML,因为它超出了我的元素,而 Google 只想在整洁的广告上推销这种技术,我可以通过编程方式做到这一点。

我遇到的一个主要问题是,有很多教程,无论是来自谷歌还是来自第三方,都包含使用 import android.opengl.GLSurfaceView 命令的代码,或者导入一个子集 GLSurfaceView,而这在我的 IDE 上永远不起作用. 每次我尝试导入其中任何一个时,Eclipse 都想说它基本上无法识别该包。奇怪的是我可以导入 android.opengl.*,尽管这仍然会导致这些包中的一些代码引用无法识别的类型和/或方法。

在尝试解决第一个问题一段时间后,我注意到 Lunar Lander 示例没有尝试导入这两个问题库中的任何一个。因此,我将代码和引用的资源提取到我的一个婴儿项目中,而该项目中的其他所有内容都未使用。当然,我确实更改了 Lunar Lander 代码所在的包并更改了 LunarLander.java 中的类名或其他任何内容,但这无关紧要。我能够得到在 Eclipse 中构建的东西。但是,当我去运行它时,它只会崩溃。没有显示任何月球着陆器图形或任何东西,模拟器只会给我这个错误消息,基本上是说我的应用程序意外停止工作并让我关闭应用程序。

1) opengl.GLSurfaceView 包的问题是什么?2)月球着陆器的例子是什么?3) 哪里有关于如何为 Android 制作视频游戏的优秀、坚定的教程

谢谢。

4

1 回答 1

3

您是在构建 2D 还是 3D 游戏?我不能说 3D,但我已经构建了一些简单的 2D 游戏,而 SurfaceView 与其说是帮助,不如说是一个障碍。模拟器只模拟一个核心,所以你并没有真正在绘图上获得性能优势。此外,线程开销和维护是一个痛苦的处理并阻止了许多功能(我花了几个小时试图从各种配置启动一个 GameOver 对话框,而额外的线程阻止了这种情况的发生)。

SurfaceView 的替代方法是实现您自己的扩展 View 的类,并覆盖 onDraw(Canvas) 以绘制您喜欢的任何内容(这是我和我的朋友所做的)。

回答你的观点:

  • 我从未在 3D 领域工作过,也从未使用过 Android 的 OpenGL,但 Eclipse(如果您正在使用的话)在定位 Android 资源时可能会有点脾气暴躁。其余的课程是否加载?

  • Lunar Lander 向您展示了如何创建和销毁扩展 SurfaceView 和 SurfaceHandler 的视图。同样,在某些情况下 SurfaceView 可能是一个不错的选择,但如果您刚开始使用 Android 并构建简单的 2D 游戏,我认为这不是必需的。

  • 好的教程很难找到。我花了几个小时阅读Hello Android的电子书版本,学到了足够的知识来制作这款 2D 游戏

我和我的一些朋友本学期正在为 Android 开发游戏,我们还建立了一个博客,希望在学期进行时为其他人提供资源。可悲的是,目前没有太多关于它的内容。

祝你好运!

于 2010-02-23T03:33:38.340 回答