Ios OpenGL与Cocos2d:选择什么?

Ios OpenGL与Cocos2d:选择什么?,ios,xcode,opengl-es,cocos2d-iphone,Ios,Xcode,Opengl Es,Cocos2d Iphone,我知道cocos2d是一个非常简单的API,我可以用它来做简单和巨大的2D甚至有时是3D游戏/应用程序。我也知道OpenGL更复杂,它是低级API等等 问题:实施2D/3D游戏的更好方法是什么如果我们有像cocos2d这样的简单框架,为什么我们需要学习OpenGL使用OpenGL可以做什么,而使用cocos2d做不到什么? 提前谢谢 Cocos2d是一个围绕OpenGL的2D特性的包装器(从现在起:)。在引擎盖下,它自己使用OpenGL ES来实现其功能。这很好,因为这意味着性能开销最小,因此您

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

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


提前谢谢

Cocos2d是一个围绕OpenGL的2D特性的包装器(从现在起:)。在引擎盖下,它自己使用OpenGL ES来实现其功能。这很好,因为这意味着性能开销最小,因此您可以开始使用其更简单的API,而不必沉浸在OpenGL更大的学习路径中

然而,它只有强大的2D支持,如果你打算编写以后的3d游戏,你就失去了Cocos2d的所有好处:为什么你要用一个2D框架重写一个3d渲染引擎,而这个框架在引擎盖下使用一个非常强大的3d引擎?你做了很多不必要的工作,结果表现不佳

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


如果您想启动OpenGL ES,这是一个非常适合初学者的教程:

什么更适合实现2D/3D游戏?

  • 很难说,但是一个更高级别的API总是在那里让事情变得更简单。例如,您正在编写二维快照。你可能会使用一个游戏循环,你会想使用精灵,让它们在屏幕上移动。你可能想要像爆炸发生一样的动画。最终,您将编写自己的更高级别API来完成这些工作。Cocos2D已经为您解决了这些问题。任何其他框架世界都应该解决这个问题
如果我们有cocos2d这样的简单框架,为什么我们需要学习OpenGL?

  • 如果您想对框架的标准行为,特别是绘图部分进行自定义,您应该进入openGL。如果您想要的东西不是现成的,那么您可能会发现自己正在重新实现一个基本框架类。例如,查看COCOS2D2.0中使用的着色器。如果你喜欢一些特殊的混合模式,比如着色效果,你不会免费得到它。CCSprite有一个颜色属性,但这可能不是您期望的结果。因此,您必须编写自己的着色器,并将其插入希望以不同方式显示的精灵中
用OpenGL可以做什么,而用cocos2d做不到什么?

  • 这种比较并没有真正起作用,因为cocos2d促进了绘图部分的opengGL来构建更高级别的api,并使您作为游戏开发人员的生活更轻松
@MrTJ所以你不建议看一下Cocos3D?如果你最初计划开发2D游戏,这将是一个好主意,肯定会让你更快地获得结果。稍后,当您对游戏开发有了一些想法,并且想要开发3D游戏时,您可以寻找其他支持3D的框架,或者直接使用OpenGL编写自己的框架。