我所理解的Cocos2d-x第一章笔记
主要介绍了3.0之于2.0的改变
Cocos2d-x 3.0 新特性 使用C++风格
3.0 2.0
1 ,使用命名空间 代替 “CC”前缀
2 ,新的clone() 直接返回一个加入 autorelease 的对象
3 ,getInstance() 和 destroyInstance() 来代替 sharedXXX() 和 endXXX()
在Cocos2d-x 3.0中,TextureCache、Dispatcher等对象不再是全局的单例,属于Director
auto tc = Director:: getInstance() -> getTextureCache()
4 ,使用更明确的get前缀来表示属性获取方法
node->getBoundingBox() node->boundingBox()
sprite->getNodeToParentTransform() sprite->nodeToParentTransform()
5 ,所有的属性获取方法使用const声明来限制其对自身属性的修改
virtual float getScale() const; virtual float getScale();
6 , 对于POD类型,使用引用参数来代替指针传递,包括TexParams、Point、Size等,这些对象被分配到栈中,更易于内存的管理
void setTexParameters(constccTexParams & texParams); void setTexParameters(constccTexParams * texParams);
7 , Cocos2d-x 3.0 使用了部分C++的特性,包括std::function、强类型枚举、std::thread、override和final关键字、移动语义等。
8 , std::function可以被传递lambda表达式,亦可通过std::bind绑定一个方法指针。
fe : CallFunc::create(
[&](){auto sprite = Sprite::create("sp.png");
this->addChild(sprite);}
)
9 , 表示枚举和常量3.0使用强枚举,之前用k前缀来表示。但是这些参数会被int型变量替换
Texture2D::PixelFormat::RGBA8888 kCCTexture2DPixelFormat_RGBA8888
Director::Projection::CUSTOM kCCDirectorProjectopnCustom
Color3B::GREEN ccGREEN
Point::ZERO CCPointZero
Size:ZERO CCSizeZero
10 , override用来在编译时检测一些可能的重载错误。当一个方法被声明为override关键字时,必须能在其父类中找到相应的可重载方法,否则编译器将产生错误
class Sprite : public Node {
bool isFlipY(void) const;
void setFlipY(bool bFlipY);
// Overrides
virtual void setTexture(Texture2D *texture) override;
virtual Texture2D* getTexture() const override;
}
这个的相关知识过时,对自己也没有什么帮助。先暂停,面试可看
主要介绍了3.0之于2.0的改变
Cocos2d-x 3.0 新特性 使用C++风格
3.0 2.0
1 ,使用命名空间 代替 “CC”前缀
2 ,新的clone() 直接返回一个加入 autorelease 的对象
3 ,getInstance() 和 destroyInstance() 来代替 sharedXXX() 和 endXXX()
在Cocos2d-x 3.0中,TextureCache、Dispatcher等对象不再是全局的单例,属于Director
auto tc = Director:: getInstance() -> getTextureCache()
4 ,使用更明确的get前缀来表示属性获取方法
node->getBoundingBox() node->boundingBox()
sprite->getNodeToParentTransform() sprite->nodeToParentTransform()
5 ,所有的属性获取方法使用const声明来限制其对自身属性的修改
virtual float getScale() const; virtual float getScale();
6 , 对于POD类型,使用引用参数来代替指针传递,包括TexParams、Point、Size等,这些对象被分配到栈中,更易于内存的管理
void setTexParameters(constccTexParams & texParams); void setTexParameters(constccTexParams * texParams);
7 , Cocos2d-x 3.0 使用了部分C++的特性,包括std::function、强类型枚举、std::thread、override和final关键字、移动语义等。
8 , std::function可以被传递lambda表达式,亦可通过std::bind绑定一个方法指针。
fe : CallFunc::create(
[&](){auto sprite = Sprite::create("sp.png");
this->addChild(sprite);}
)
9 , 表示枚举和常量3.0使用强枚举,之前用k前缀来表示。但是这些参数会被int型变量替换
Texture2D::PixelFormat::RGBA8888 kCCTexture2DPixelFormat_RGBA8888
Director::Projection::CUSTOM kCCDirectorProjectopnCustom
Color3B::GREEN ccGREEN
Point::ZERO CCPointZero
Size:ZERO CCSizeZero
10 , override用来在编译时检测一些可能的重载错误。当一个方法被声明为override关键字时,必须能在其父类中找到相应的可重载方法,否则编译器将产生错误
class Sprite : public Node {
bool isFlipY(void) const;
void setFlipY(bool bFlipY);
// Overrides
virtual void setTexture(Texture2D *texture) override;
virtual Texture2D* getTexture() const override;
}
这个的相关知识过时,对自己也没有什么帮助。先暂停,面试可看