码迷,mamicode.com
首页 > 其他好文 > 详细

cocos2dx 学习笔记

时间:2014-08-17 11:33:22      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   使用   os   io   ar   cti   

1. 动作类:

    CAction : CActionInterval(持续性) 和 CActionInstant(瞬时性)

    帧动画 CAnimate,  帧动画序列 CAnimation

 

2. Cocos2dx 中所有对象都创建在堆上,然后通过指针引用;

    创建方法:

    1) new 对象 -> init方法, 需要使用者进行释放;

    2)静态的工厂方法,不需要使用者进行释放;

 

3. 选择器 selector, 类似于函数指针

    shedule_selector(SELECTOR)

    callfunc_selector(SELECTOR)

    menu_selector(SELECTOR)

4. 属性

    CC_SYNTHESIZE(int, tag, Tag)

    注意,如果属性类型是对象,需要写成指针的形式

    相关宏, CC_SYNTHESIZE,  CC_SYNTHESIZE_READONLY, ...

 

5.  内存管理

     retain()   引用加1;

     release() 引用减1;

     autorelease()  将对象放入自动回收池,当对象回收池自身被释放时,它当中所有的对象都 release()一次;

     每一帧开始时,创建一个新的回收池;

     每一帧结束时,回收池中的对象都会被释放一次

 

     工厂方法:

  

     CCObject* factorMethod() {

         CCObject* ret = new CCObject()

          //这里对对象进行必要的初始化 

          //...

         ret->autorelease()

         return ret

     }

 

    autorelease()很耗资源,应该尽量使用release(),只有在工厂方法等不得已的情况才使用 autorelease()

 

6. 使用CCArray和CCDictory, 因为它们在释放时会调用release()

    所以,尽量用这两者,不要使用STL

 

7. 使用内存相关宏, 等等

    CC_SAFE_RETAIN

    CC_SAFE_DELETE

    CC_SAFE_FREE

    CC_SAFE_RELEASE

 

8. 函数跟踪

 

 class LifeCircleLogger{

    string m_msg;
    public:
    LifeCircleLogger(){}
    LifeCircleLogger(const string& msg):m_msg(msg){
      CCLog("%s BEGINS!",m_msg.c_str());}
    ~LifeCircleLogger(){CCLog("%s ENDS!",m_msg.c_str());}
    };

    #define LOG_FUNCTION_LIFE LifeCircleLogger(__FUNCTION__);

  

 

9

cocos2dx 学习笔记,布布扣,bubuko.com

cocos2dx 学习笔记

标签:style   blog   color   使用   os   io   ar   cti   

原文地址:http://www.cnblogs.com/reach/p/3917498.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!