OpenGL vs Cocos2d:选择什么?

时间:2012-03-19 09:50:28

标签: ios xcode opengl-es cocos2d-iphone

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

问题:
实施2D / 3D游戏有什么好处?
如果我们有像cocos2d这样的简单框架,为什么我们需要学习OpenGL?
你可以用cocos2d做些什么来处理OpenGL?

提前致谢!

2 个答案:

答案 0 :(得分:21)

实施2D / 3D游戏有什么好处?

  • 很难说,但更高级别的API始终会让您更轻松。例如,你正在写一个2D shootem。您可能会使用游戏循环,您将需要使用精灵并在屏幕上移动。你可能想要爆炸等动画。您最终会编写自己的更高级API来执行这些操作。 Cocos2D已经为您解决了这些问题。任何其他框架世界都应该解决它。

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

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

您可以使用cocos2d无法使用OpenGL做什么?

  • 这种比较并没有真正解决,因为cocos2d有助于绘图部分的opengGL构建更高级别的api,让你的游戏开发人员生活更轻松。

答案 1 :(得分:13)

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

然而它只有强大的2D支持,如果你打算稍后写3D游戏,你就会失去Cocos2d的所有好处:为什么你要用引擎盖下使用非常强大的3d引擎的2d框架重写3d渲染引擎?你因许多不必要的工作而失去了表现。

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

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