如果我要在 iOS 或 Android 上制作像塔防这样的游戏,我是否需要广泛使用 OpenGL ES?或者我只是使用纹理而不使用几何变换、闪电、绘制原始形状等其他功能?其次,如果我只使用 sprite-sheet 来为游戏制作动画,我是否可以坚持使用原生平台提供的库而不使用 OpenGL ES?例如在 iOS 上,使用 UIImageView 类的动画方法来执行动画。
1 回答
这是一个如此复杂的问题,你几乎不会得到一个确凿的答案。
简而言之:根本不需要接触 OpenGL 来做游戏。
您描述的每种方法都可以使用,但有各种优点和缺点。Android 内置框架的简短说明:
使用标准视图(如 FrameLayouts):框架可以完成您的大部分工作(动画、z 排序等),但您会经常遇到奇怪的布局错误和令人惊讶的性能下降。这是因为您实际上是在阅读游戏的 UI 框架。然而,对于一个非常简单的游戏来说,这可能是正确的做法。
使用 Canvas 绘画:Android 包含一个很好且相当快速的 2D 图形库。您可以将它用于游戏,它将为许多游戏提供足够的性能。但是,您必须自己做更多的事情(例如,z-sorting、动画)并且一些高端效果仍然是不可能的
OpenGL ES:最佳性能,最多选择。祝你好运,当你从头开始时,在你获得屏幕上最简单的东西之前,还有很多事情要做。另一方面,您可以做其他方法几乎不可能完成的事情。此外,可以为多个平台重用部分代码。
Renderscript:根据我的经验,比直接使用 OpenGL 更糟糕的是,学习曲线更加陡峭。
简而言之,首先设计游戏,然后决定哪个框架可以提供足够的功能而不至于太复杂。
最后:考虑一下不要自己做所有的管道,而是看看现有的游戏引擎(例如Unity )。几乎所有你需要的东西都在那里;此外,其中一些引擎甚至可以跨平台工作:编写您的游戏一次,在 iOS和Android 上发布!