先给出下载地址:http://cocos2d-x.org/download
一. 全心为C++用户打造
1. 在3.0中,把之前版本中使用的很多Objective-c模式改为了C++模式。如果C++用户直接用之前版本的Cocos2d-x,会遇到一些困惑,为什么代码要这么写?其实那只是为了与cocos2d-iphone版中的一些Objective-c的模式保持一致而以,而新的3.0版本中则不再保持这些Objective-c中的模式,而采用C++程序员原本就熟悉的一些模式。小吐槽一下,从C++转用Objective-C后,感觉一些Objective-C中的模式是很实用的,刚适应好并自我感觉很高大上的时候,3.0版本又来这么一下,囧。
2. 代码库迁移到C++11。主要有两点:一是支持用Lambda来写回调函数,二是内部使用的新的C++11线程API。Lambda是个语法糖,用了之后就不愿意再回到从前了,新的线程API暂可以先不用理会。
3. 去掉所有CC前缀,因为已经有cocos2d这个命名空间了。另外不再使用匈牙利命名法。
4. 增加了模板容器cocos2d::vector<>和cocos2d::map<>,其实就是把标准库中的容器再封装了一下。另外还废弃了CCObject对象,cocos2d-x也不再使用这个基类对象
二. 命令行式创建工程
3.0中新增了一个命令行工具cocos,在这个命令行工具中可以用命令行的方式创建新的工程,并且这个工具是跨平台的,也就是说,可以在不同的平台下使用相同的命令行方式来创建工程。挺酷也挺方便的东西。
1 | $ cocos new -l cpp MyGame |
三. 更好的渲染方式
3.0中不用再使用SpriteBatchNode
来提高渲染效率了,Sprite能自动处理批量渲染工作。内部怎么实现的就先不管了,直接使用Sprite就好了。
四. 更快了
不仅是渲染效率的提升,3.0还作了很多算法改进等工作,总之就是性能更快了。
五. 改善了Label的API
原来的三种Label现在3合1了,直接用Label就行。新的Label支持描边,阴影,莹光等特效。
六. 物理引擎有改动
物理引擎中添加了一些新的概念,比如PhysicsWorld
, PhysicsJoint
, PhysicsContact
, PhysicsShape
以及 PhysicsBody
.
七. 更易于维护和扩展
移除了一些有平台相关性的代码
八.支持2.5D游戏设计
Node的变形直接采用了4x4的矩阵而不是以前的2x3的矩阵,因此可以设计2.5D的游戏了。
九.内建控制台
十.一体化的事件分派器
新的事件分发器可以处理所有事件:用户事件,Touch事件,键盘事件,加速器事件等。旧的事件分派器被废弃
十一.新的UI控件
添加了一些新的UI控件,如:ui::Button
, ui::Layout
, ui::PageView
, ui::ScrollView
, ui::Slider
, 等等!
十二.向前兼容
虽然3.0有很多新的接口,但老的接口仍可以使用,只是会注明已废弃。