1.命名空间去掉了Object-c风格的前缀“CC”,比如CCSprite更名为Sprite等,一些全局方法也被加入到相应的命名空间内。比如与绘制几何单元相关的方法加入到DrawPrimitives命名空间内。与OpenGL ES相关的命令则使用GL命名空间。
2.x | 3.x |
CCSprite | Sprite |
ccDrawPoint() | DrawPrimitives:drawPoint() |
ccGLBlendFunc() | GL::blendFunc() |
2.使用clone()代替copy() 方法, copy() 方法用于深度复制一个对象,比如Action 广泛使用clone方法来避免对原对象的修改,也可以利用一些模版对象来动态的构造新的对象,以达到类似反射的效果。 且clone()方法直接返回一个加入自动回收池的对象,不需要调用者手动处理。
2.x | 3.x |
copy() | clone() |
3.TextureCache, Dispatcher等对象不再是全局的单例,而是需要通过Director来获取实例。 4.使用更明确的get前缀来获取属性方法。
2.x | 3.x |
node->boundingBox | node->getBoundingBox() |
sprite->nodetoParentTransform | sprite->getNodeToParentTransform() |
5.所有的属性方法使用const 来限制对自身属性的修改
2.x | 3.x |
visual float getScale(); | visual float getScale() const; |
6.对于POD类型,使用引用参数代替指针传递,比如TextParams,Points等,这些对象将被分配到栈中,有助于内存管理。 // 2.x void setTexParameters(ccTexParams* texParams); // 3.x void setTexParameters(const ccTexParams& texParams);
转载于:https://www.cnblogs.com/SkyflyBird/p/9832522.html