我在每个Android图形/ SurfaceView教程都遇到了问题

时间:2010-02-23 00:24:35

标签: android graphics surfaceview

我正在尝试学习如何在Android上制作视频游戏,因此我需要获得一些体面的教程,了解如何使用SurfaceView对象在Android上制作图形。但是我尝试过的每一个图形教程(主要是SurfaceView的东西)都失败了。请注意,我不想使用XML,因为它不符合我的要素,谷歌只想在整洁的广告上出售这种技术,我可以通过编程方式进行。

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

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

1)opengl.GLSurfaceView包的问题是什么? 2)与Lunar Lander示例有什么关系? 3)哪里有关于如何为Android制作视频游戏的好的,坚定的教程

感谢。

1 个答案:

答案 0 :(得分:3)

您是在制作2D或3D游戏吗?我不能说3D,但我已经建立了一些简单的2D游戏,而SurfaceView更多的是障碍而不是帮助。模拟器仅模拟一个核心,因此您无法在绘图上获得性能优势。此外,线程开销和维护是一个很难处理和阻止许多功能(我花了几个小时只是尝试从各种配置启动GameOver对话框,额外的线程阻止了这种情况发生)。

SurfaceView的另一种选择是实现你自己的扩展View的类,并覆盖onDraw(Canvas)来绘制你喜欢的东西(这是我和我的朋友所做的)。

回答你的观点:

  • 我从来没有使用3D或使用Android的OpenGL,但是Eclipse(如果你正在使用它)可能会因为找到Android资源而有点气质。你的其他课程加载了吗?

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

  • 很难找到好的教程。我学会了this 2D game使用Hello Android的电子书版本花了几个小时。

我和我的一些伙伴正在为本学期的Android游戏工作,我们还设置a blog我们希望在学期开始时为其他人提供资源。可悲的是,目前还没有太多内容。

祝你好运!