2012-03-19 79 views
14

我知道cocos2d是非常简单的API,我可以用它来做简单而巨大的2D,甚至有时甚至是3D游戏/应用程序。我也明白OpenGL它更复杂,它是更低层次的API等。OpenGL vs Cocos2d:选择什么?

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

在此先感谢!

回答

21

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

  • 很难说,但更高层次的API总是在那里让您更容易。例如,你正在写一个2D射击。你可能会使用游戏循环,你会想要使用精灵并在屏幕上移动。您可能希望发生爆炸等动画。您最终会编写自己的更高级别的API来完成这些任务。 Cocos2D已经为您解决了这些问题。任何其他框架世界都应该解决它。

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

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

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

  • 这种比较并没有真正奏效,因为cocos2d的方便opengGL的绘图部分,建立更高层次的API,让您的生活更轻松的游戏开发商。
+0

非常感谢! – 2012-03-19 10:44:11

13

Cocos2d是围绕OpenGL的二维特征(如:http://www.cocos2d-iphone.org/about)的封装。在其底下,它本身使用OpenGL ES来实现其功能。这很好,因为这意味着性能开销会很小,因此您可以开始使用其更简单的API,而不必沉浸在OpenGL的绝对更大的学习路径中。

然而,它只有强大的2D支持,如果你打算写更高版本的3D游戏,你会失去Cocos2d的所有优点:你为什么要用2D引擎重写3d渲染引擎,引擎盖下使用了非常强大的3D引擎?你会因为大量不必要的工作而失去表现。

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

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

+0

非常感谢! – 2012-03-19 10:44:21

+0

@MrTJ所以你不会推荐看看Cocos3D? http://brenwill.com/cocos3d/ – 2012-03-20 08:06:55

+0

如果您主要计划开发2D游戏,那么这将是一个好主意,它肯定会为您提供更快的结果。稍后,当您对游戏开发有所了解并想开发3D游戏时,您可以寻找其他支持3D的框架,或者直接为Open GL编写您自己的框架。 – MrTJ 2012-03-20 09:56:10