【问题标题】:iPhone board game: OpenGL ES or CoreGraphics? [closed]iPhone 棋盘游戏:OpenGL ES 还是 CoreGraphics? [关闭]
【发布时间】:2009-07-04 16:20:39
【问题描述】:

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

【问题讨论】:

    标签: iphone opengl-es core-graphics


    【解决方案1】:

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

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

    对于 2-D 游戏,我会推迟使用 OpenGL,直到您完全确定无法从 Core Animation 获得所需的性能。 OpenGL 的代码没有那么优雅。

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

    【讨论】:

      【解决方案2】:

      您还可以查看适用于 iPhone 的 cocos2d - 这是一个功能非常齐全的 2d 游戏库;它有 tilemaps、sprites、视差、调度等。我在我的游戏中使用它,它对我有很大帮助。

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

      【讨论】:

      • 使用 Cocos2D,你永远不会因为重帧动画而撞到块。您还可以添加精美的粒子效果。它很容易学习并开始看到结果。提供场景管理。
      【解决方案3】:

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

      但是,如果您不熟悉它,CoreGraphics 更容易上手。我对OpenGL不是很了解,所以在写游戏的时候,我用CoreGraphics做的,结果还不错。

      【讨论】:

      • "OpenGL,如果做得好,可能会更好看。"我完全不同意那个评论。您可能会遇到锯齿问题、纹理过滤问题等,而这些问题在预渲染片段中是不会出现的。当然,如果您的意思是“围绕棋盘进行 3D 旋转会更令人印象深刻”,是的。
      • 使用 OpenGL 看起来不会更好。对于简单的游戏,CoreAnimation 可以正常工作!
      【解决方案4】:

      如果您的视角主要是俯视图,用户视图处于固定位置,并且您不需要运行时纹理映射或特殊照明,那么核心图形会更容易。否则,我会使用 OpenGL(或其中一种第三方游戏构建工具包,如 Unity,使其变得简单)。

      这真的取决于你想要什么样的外观。

      【讨论】:

        【解决方案5】:

        如果您不是非常渴望性能(棋盘游戏可能不是),请使用 CoreGraphics。您可以在更高的抽象级别上工作,还可以获得一些必须手写的东西,例如动画。 (P.S. 我假设你在谈论 2D。)

        【讨论】:

        • CoreGraphics 是肯定的。它可以轻松地同时在屏幕上处理 20 - 30 个精灵的动画,而性能问题很少。修改会更快,因为您可以使用 Photoshop 等工具重新构建图像。如果您想做一些非常酷的相机移动或一些非常简洁的动画,OpenGLES 可能非常简洁。
        • 您当然也可以将珍贵的 Photoshop 与 OpenGL 一起使用。 Apple 提供了将 UIImages 加载为 OpenGL 纹理的代码。
        【解决方案6】:

        对于这个绝对是核心图形和核心动画。 Jeff LeMarche 在他的博客上有一个 Black Jack 游戏的示例模板 - 我刚刚完成了这个方法的 suduko 拼图。至于我用于平台游戏的 cocos2D - openGL 不会改善或增强图形 - 它绝对不会让图形看起来更好 - 你可以用 Photoshop 把你的心全都用在这个上,并感到安全并知道它看起来很棒.为此学习 Cocos2D 开销太大 - 与学习 openGL ES 相同 - 只需使用核心图形并将其输出即可。就未来的 openGL ES 而言 - 当然 - 但在尝试这些之前,您应该了解 Apple 的“核心”。

        【讨论】:

          【解决方案7】:

          OpenGL。从长远来看,这是值得的,我认为学习曲线比 CoreGraphics 用于 2D 精灵的东西更容易。

          【讨论】:

            猜你喜欢
            • 2014-07-24
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2010-12-10
            • 2017-09-03
            相关资源
            最近更新 更多