anndaming

 

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: [sprite contentSize]

     cocos2d-x: sprite->getContentSize()

  • 调用函数时,cocos2d-x不必像cocos2d那样解释每一个参数的用途。
     cocos2d: [CCSprite spriteWithFile..., rect...];

     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。

posted on 2012-05-12 00:14  anndaming  阅读(376)  评论(0编辑  收藏  举报

导航