使用cocos2d-x 3.0比cocos2d-x 2.x有什么好处?

时间:2013-12-20 01:42:05

标签: cocos2d-x cocos2d-x-3.0

Cocos2d-x 3.0 alpha现已发布一段时间了。什么比cocos2dx-2改进了?

功能列表非常重要,但在性能方面有新的限制/改进吗?

您是否注意到性能,开发模式,API和支持方面的真正改进?

4 个答案:

答案 0 :(得分:11)

我最近一直在使用它,从我注意到的主要区别是现在所有内容都是命名空间,所以你不必处理来自目标c模式的前缀名称,所以cocos2d: :Point而不是CCPoint(特别是对于枚举,(Texture2D :: PixelFormat :: RGBA8888而不是kCCTexture2DPixelFormat_RGBA8888))。

此外,一些事件现在支持c ++ 11 lambdas。

可在此处找到更完整的更改列表:http://www.cocos2d-x.org/wiki/Release_Notes_for_Cocos2d-x_v300

但是在我自己使用它的大部分时间里,它只是让人感觉更像是C ++,而不是像Objective-c。

答案 1 :(得分:4)

我已经切换并且发现它非常稳定。迄今为止的主要优势......

  • 真实按钮,而不是菜单
  • 实时精灵表
  • 不再推荐使用SpriteBatchNodes,我确实看到我没有优化的绘制调用下降
  • 不太客观的C模式。
  • 更现代。命名空间而不是'CC'。 C ++ 11。
  • 支持更多平台

对我来说主要的缺点:

  • EventListener模式。我无法弄清楚如何获取触摸输入以影响触发事件的节点以外的任何对象。
  • 我们使用大量纯文本按钮进行调试,但很难布局:)
  • 缺少文档和示例代码。例如,我找不到任何关于如何在任何地方使用Layout类的文档。

这是一项很多移植工作,但对我们来说,我们不得不决定冒险,因为我们最终会维护一个过时的代码库。我们花了大约5个人日来完成游戏。游戏现在稳定,我们没有碰到cocos中的一个bug。

答案 2 :(得分:3)

我认为它的C ++ 11

  1. 自动
  2. 拉姆达
  3. 它没有不必要的前缀CC

答案 3 :(得分:2)

Cocos2d-x 2.1.5和2.2之间发生的一个变化是删除了XCode中项目的模板(我不知道VS中是否存在项目模板等)。

新的构建系统在Cocos2d-x安装下创建项目(至少在Mac上),这是项目文件似乎引用它们的地方。这使得在没有手动调整的情况下移动项目非常困难。它还会使配置管理变得更加痛苦,具体取决于您设置系统的方式(例如svn之类的root / tree或者#34;将它放在任何地方"像git一样)。

此外,Cocos2d-x库就是一个库。在以前的版本中,它直接放在项目中。一方面,如果你不改变根库代码,这很有道理。另一方面,如果您偶尔调整特定项目的内容,则会更改所有依赖于它的项目。阴/阳

我对Cocos2d-x仍然非常积极。我还没有升级到3.0或2.2。当它成熟一点时,无论发生什么变化,我都会切换。对于我需要的东西,我很确定它仍然可以完成工作(好)。