【发布时间】:2009-07-04 16:20:39
【问题描述】:
我想为 iPhone 编写一个棋盘游戏(类似于跳棋)。 OpenGL ES 或 CoreGraphics 会是更好的选择吗? App Store 上大多数此类游戏都使用什么?
【问题讨论】:
标签: iphone opengl-es core-graphics
我想为 iPhone 编写一个棋盘游戏(类似于跳棋)。 OpenGL ES 或 CoreGraphics 会是更好的选择吗? App Store 上大多数此类游戏都使用什么?
【问题讨论】:
标签: iphone opengl-es core-graphics
实际上,在这种情况下,我建议的是核心动画,甚至只是 UIViews 本身。如果您通过 Core Graphics 在单个视图中直接绘制所有元素,然后为每个动画帧刷新该视图,您将获得可怕的性能。
我建议将游戏板的离散元素(棋子、计数器、棋盘方格等)绘制为单独的 UIView 或 CALayer,然后为这些层或视图设置动画。 UIViews 并没有比 CALayers 重太多,它们在幕后使用 Core Animation 来做简单的移动、缩放或淡入淡出的动画。他们还可以响应触摸事件。如果您想构建更跨平台(Mac 和 iPhone)的游戏,或者需要制作更复杂的动画,CALayers 非常有用。
对于 2-D 游戏,我会推迟使用 OpenGL,直到您完全确定无法从 Core Animation 获得所需的性能。 OpenGL 的代码没有那么优雅。
关于如何使用 Core Animation 制作棋盘游戏的一个很好的例子,Apple 提供了GeekGameBoard sample code。虽然它是一个 Mac 应用程序,但 Core Animation 代码可以直接翻译到 iPhone。
【讨论】:
您还可以查看适用于 iPhone 的 cocos2d - 这是一个功能非常齐全的 2d 游戏库;它有 tilemaps、sprites、视差、调度等。我在我的游戏中使用它,它对我有很大帮助。
【讨论】:
如果处理得当,OpenGL 可能看起来会更好。但是,我的理解是,如果你不知道它是如何工作的,它比 CoreGraphics 要难得多。
但是,如果您不熟悉它,CoreGraphics 更容易上手。我对OpenGL不是很了解,所以在写游戏的时候,我用CoreGraphics做的,结果还不错。
【讨论】:
如果您的视角主要是俯视图,用户视图处于固定位置,并且您不需要运行时纹理映射或特殊照明,那么核心图形会更容易。否则,我会使用 OpenGL(或其中一种第三方游戏构建工具包,如 Unity,使其变得简单)。
这真的取决于你想要什么样的外观。
【讨论】:
如果您不是非常渴望性能(棋盘游戏可能不是),请使用 CoreGraphics。您可以在更高的抽象级别上工作,还可以获得一些必须手写的东西,例如动画。 (P.S. 我假设你在谈论 2D。)
【讨论】:
对于这个绝对是核心图形和核心动画。 Jeff LeMarche 在他的博客上有一个 Black Jack 游戏的示例模板 - 我刚刚完成了这个方法的 suduko 拼图。至于我用于平台游戏的 cocos2D - openGL 不会改善或增强图形 - 它绝对不会让图形看起来更好 - 你可以用 Photoshop 把你的心全都用在这个上,并感到安全并知道它看起来很棒.为此学习 Cocos2D 开销太大 - 与学习 openGL ES 相同 - 只需使用核心图形并将其输出即可。就未来的 openGL ES 而言 - 当然 - 但在尝试这些之前,您应该了解 Apple 的“核心”。
【讨论】:
OpenGL。从长远来看,这是值得的,我认为学习曲线比 CoreGraphics 用于 2D 精灵的东西更容易。
【讨论】: