cocos2d 转 cocos2d-x 学习笔记(一)
要点:
- 初始化:
cocos2d: if((self=[super init])){...}
cocos2d-x: if(CCLayer::init()){...}
不要使用C++里的__super来替代object-c里的super。关键字__super仅能在VC++中被识别,但是无法被GCC给编译。因此要调用其父类名称,如CCLayer::init()
- 在C++里没有属性的概念。故在object-c里的属性,要用get/set方法替代(结构体除外)。
cocos2d-x: sprite->getContentSize()
- 调用函数时,cocos2d-x不必像cocos2d那样解释每一个参数的用途。
cocos2d-x: CCSprite::spriteWithFile(..., ...);
- 在cocos2d上一些类的前缀(如CG、NS、UI)统一成了CC前缀,主要是为了避免命名上的冲突。
- 在cocos2d-x里的游戏元素(如Sprite、Layer、Scene、Label、Action)都在heap里分配了内存,故要用指针“->”来调用它们的方法。
- 在C++中,用关键字“this”来代替object-c中的“self”。
- 在C++中没有关键字“id”,故在cocos2d中返回值为“id”的方法在cocos2d-x中要么替换成对象的指针,要么换成bool。