【问题标题】:OpenGL vs Cocos2d: What to choose?OpenGL vs Cocos2d:选择什么?
【发布时间】:2012-04-03 19:29:41
【问题描述】:

我知道 cocos2d 它是一个非常简单的 API,我可以用它来做简单而巨大的 2D 甚至有时是 3D 游戏/应用程序。我也知道 OpenGL 更复杂,它是较低级别的 API 等。

问题:
实现 2D/3D 游戏有什么更好的方法?
如果我们有像 cocos2d 这样简单的框架,为什么还需要学习 OpenGL?
OpenGL 能做什么,而 cocos2d 不能做?

提前致谢!

【问题讨论】:

    标签: ios xcode opengl-es cocos2d-iphone


    【解决方案1】:

    什么对实现 2D/3D 游戏更好?

    • 很难说,但总有更高级别的 API 可以让您更轻松。例如,您正在编写 2D 射击游戏。您可能会使用游戏循环,您会想要使用精灵并使它们在屏幕上移动。您可能想要发生爆炸等动画。你最终会编写自己的更高级别的 API 来做这些事情。 Cocos2D 已经为您解决了这些问题。任何其他框架世界都应该解决它。

    如果我们有像 cocos2d 这样简单的框架,为什么还要学习 OpenGL?

    • 如果您想自定义框架的标准行为,尤其是绘图部分,您应该使用 openGL。如果有一些你喜欢的东西不是开箱即用的,你可能会发现自己重新实现了一个基础框架类。例如,查看 Cocos2D 2.0 中使用的着色器。如果你喜欢一些特殊的混合模式,比如着色效果,你不会免费获得它。 CCSprite 有一个颜色属性,但这可能不是您期望的结果。因此,您必须编写自己的着色器并将其插入您希望以不同方式显示的精灵。

    你可以用 OpenGL 做什么而用 cocos2d 不能做?

    • 这种比较并没有真正奏效,因为 cocos2d 促进了绘图部分的 opengGL 以构建更高级别的 api 并使您作为游戏开发人员的生活更轻松。

    【讨论】:

      【解决方案2】:

      Cocos2d 是 OpenGL 的 2D 功能的包装器(截至目前:http://www.cocos2d-iphone.org/about)。在引擎盖下,它本身使用 OpenGL ES 来实现其功能。这很好,因为这意味着性能开销最小,因此您可以开始使用其更简单的 API,而不必沉浸在 OpenGL 的绝对更大的学习路径中。

      但是它只有强大的 2D 支持,如果您打算编写以后的 3d 游戏,您将失去 Cocos2d 的所有优点:为什么要重写具有 2d 框架的 3d 渲染引擎,而在底层使用非常强大的 3d 引擎?你会因为很多不必要的工作而失去性能。

      所以更简单的答案是:对于 2d Cocos2d,对于 3d OpenGL。

      如果你想启动OpenGL ES,这是一个非常适合初学者的教程:http://iphonedevelopment.blogspot.it/2009/05/opengl-es-from-ground-up-table-of.html

      【讨论】:

      • @MrTJ 所以你不建议看看 Cocos3D 吗? brenwill.com/cocos3d
      • 如果您主要计划开发 2D 游戏,那将是一个好主意,并且肯定会更快地为您提供结果。稍后当您对游戏开发有了一些想法并想开发 3D 游戏时,您可以寻找其他也支持 3D 的框架,或者直接使用 Open GL 编写自己的框架。
      猜你喜欢
      • 1970-01-01
      • 2012-01-03
      • 1970-01-01
      • 1970-01-01
      • 2012-02-14
      • 1970-01-01
      • 1970-01-01
      • 2019-02-28
      • 2014-11-30
      相关资源
      最近更新 更多