iPhone桌面游戏:OpenGL ES还是CoreGraphics?

时间:2009-07-04 16:20:39

标签: iphone opengl-es core-graphics

我想为iPhone制作棋盘游戏(类似于跳棋)。 OpenGL ES或CoreGraphics会是更好的选择吗? App Store上大多数此类游戏都使用什么?

7 个答案:

答案 0 :(得分:21)

实际上,我在这个案例中建议的是Core Animation,甚至只是UIViews本身。如果您通过Core Graphics直接在单个视图中绘制所有元素,然后为每个动画帧刷新该视图,您将获得可怕的性能。

我建议将游戏板的离散元素(棋子,计数器,棋盘方块等)绘制为单独的UIViews或CALayers,然后为这些图层或视图制作动画。 UIViews并不比CALayers重得多,他们在幕后使用Core Animation来进行简单的移动,缩放或淡化动画。他们还可以响应触摸事件。如果您想构建更多跨平台(Mac和iPhone)游戏,或者您需要制作更复杂的动画,CALayers非常有用。

对于2D游戏,我会推迟使用OpenGL,直到你完全确定你无法从Core Animation获得你想要的那种性能。编写代码时,OpenGL的优雅程度要低得多。

有关如何使用Core Animation进行棋盘游戏的一个很好的例子,A​​pple提供了GeekGameBoard sample code。虽然它是一个Mac应用程序,但Core Animation代码可以直接转换到iPhone。

答案 1 :(得分:6)

你也可以看一下cocos2d for iphone - 它是一个功能齐全的二维游戏库;它有瓷砖地图,精灵,视差,日程安排等。我正在将它用于我的游戏,这对我有所帮助。

http://code.google.com/p/cocos2d-iphone/

答案 2 :(得分:3)

OpenGL,如果做得好,可能看起来会更好。但是,我的理解是,如果你不知道它是如何运作的话,它比CoreGraphics要难得多。

但是,如果您不熟悉它,CoreGraphics更容易上手。我不太了解OpenGL,所以当我写一个游戏时,我在CoreGraphics中做到了,结果非常好。

答案 3 :(得分:3)

如果您的视角主要是俯视图,则用户视图位于固定位置,并且您不需要运行时纹理映射或特殊照明,因此核心图形将更容易。否则我会选择使用OpenGL(或像Unity那样的第三方游戏构建工具包之一)。

这实际上取决于你的目标。

答案 4 :(得分:2)

如果你不是非常渴望表现,那么棋盘游戏可能不是,请选择CoreGraphics。您可以获得更高抽象级别的工作,也可以获得一些手工编写的东西,例如动画。 (P.S.我假设你在谈论2D。)

答案 5 :(得分:2)

对于这个绝对核心的图形和核心动画。 Jeff LeMarche在他的博客上有一个Black Jack游戏的示例模板 - 我刚刚完成了这种方法的suduko拼图。至于我用于平台游戏的cocos2D - openGL不会改进或增强图形 - 它肯定不会让图形看起来更好 - 你可以在这个上发现你的心,感觉很安全并且知道它看起来很棒。为此学习Cocos2D的开销太大 - 与学习openGL ES一样 - 只需使用核心图形并将其解决。至于了解openGL ES的未来 - 当然 - 但在尝试这些之前你应该了解Apple的“核心”。

答案 6 :(得分:0)

的OpenGL。从长远来看,它是值得的,我认为CoreGraphics对2D精灵的学习曲线更加容易。

相关问题