2013年11月27日 星期三

[Cocos2D-X] 简述Cocos2D-X中的内部函数

http://502317120.blog.51cto.com/4062300/1191871

简述Cocos2D-X中的内部函数

    虽然,Cocos2D-X 已经火了很长一阵子了。但,还是有很多同学刚刚接触 Cocos2D-X ,他们对Cocos2D-X 中一些引擎内部的基础函数,还不是很了解,那么今天我们就来介绍一下这些函数。   
    virtual bool isVisible();    // 是否可见
    virtual void setVisible(bool visible);      // 设置是否可见
    bool isRunning();       // 节点是否允许
    bool isIgnoreAnchorPointForPosition();    // 如果为真,则节点锚点坐标为(0,0)
    void ignoreAnchorPointForPosition(bool isIgnoreAnchorPointForPosition);     // 设置是否忽略锚点坐标
    static CCNode * create(void);       // 创建一个CCNode对象,有自动释放对象功能
    virtual void onEnter();      // 节点进入舞台(stage)时的回调函数 
    virtual void onEnterTransitionDidFinish();  // 节点计入舞台后的回调函数
    virtual void onExit();    // 节点离开舞台后的回调函数
    virtual void onExitTransitionDidStart();    //节点离开舞台时的回调函数
    virtual void registerScriptHandler(int nHandler);     // 注册onEnter、onExit的脚本处理函数,onEnter运行后脚本处理函数自动取消注册
    virtual void unregisterScriptHandler(void);      // 取消注册脚本处理函数
    virtual void addChild(CCNode * child);     // 增加子节点,z坐标为0。如果子节点附加到一个运行中的节点,那么onEnter和onEnterTransitionDidFinish函数将立即被调用
    virtual void addChild(CCNode * child, int zOrder);    // 增加子节点,z坐标为zOrder。如附加到一个运行中节点,同上
    virtual void addChild(CCNode * child, int zOrder, int tag);   // 增加子节点,z坐标为zOrder,tag为标志。如附加到运行中节点,同上。
    void removeFromParentAndCleanup(bool cleanup);    // 从父节点中删除自己,若参数cleanup为真,同时删除所有动作和回调函数。若本节点无父节点,则不执行操作
    virtual void removeChild(CCNode* child, bool cleanup);     // 删除子节点。根据参数cleanup删除运行中的动作
    void removeChildByTag(int tag, bool cleanup);    // 通过tag值删除子节点,根据参数cleanup删除动作
    virtual void removeAllChildrenWithCleanup(bool cleanup);    // 删除所有子节点,根据参数cleanup删除动作*/
    CCNode * getChildByTag(int tag);     //根据tag值获取子节点,返回值是CCNode型
    virtual void reorderChild(CCNode * child, int zOrder);    // 根据参数zOrder对子节点重排序,子节点必须已经被附加至本节点
    virtual void sortAllChildren();    // 在被绘制前对子节点进行排序,而不是在每次增减子节点时排序。除非子节点在同一帧内附加后被删除,不然不要手动调用此方法
    virtual void cleanup(void);     // 停止所有运行的动作和定时器
    virtual void draw(void);      // 可重载此函数来绘制节点
    virtual void visit(void);     // 递归访问子节点并绘制它们
    CCAction* runAction(CCAction* action);     // 运行指定的动作
    void stopAllActions(void);     // 从运行动作列表中删除所有动作,即停止所有动作
    void stopAction(CCAction* action);     // 停止指定的动作
    void stopActionByTag(int tag);     // 停止参数tag指定的动作
    CCAction* getActionByTag(int tag);    // 获取参数tag指定的动作
    unsigned int numberOfRunningActions(void);     // 运行动作的数目,为运行中的动作数加上定时器计划将运行的动作数。组合动作如序列动作将被当成一个动作计算。
    bool isScheduled(SEL_SCHEDULE selector);     // 检测参数selector指定的选择器是否被计划定时
    void scheduleUpdate(void);     // 定时调度update方法,其序列号为0。定时后,每帧将调用一次update方法。序列号越小的定时器越先调度。每个节点只能定时一个update方法。
    void scheduleUpdateWithPriority(int priority);    // 定时调度update选择器,自定义优先级。每帧将调用一次update选择器。优先级越小越先调度。每个节点只能定时一个update选择器。
    void unscheduleUpdate(void);     // 取消定时update
    void schedule(SEL_SCHEDULE selector);     // 定时一个选择器,每帧调用一次
    void schedule(SEL_SCHEDULE selector, float interval);    // 定时一个自定义选择器,参数interval为时间间隔,单位为秒。若interval为0,则每帧调用一次(此时推荐使用scheduleUpdate 方法)。若选择器已被定时,则仅更新时间间隔,而不重复定时。
    void schedule(SEL_SCHEDULE selector, float interval, unsigned int repeat, float delay);  // 重复执行动作repeat+1次,不断重复则设置repeat为kCCRepeatForever。参数delay指定动作执行前延迟的时间
    void scheduleOnce(SEL_SCHEDULE selector, float delay);     // 定时一个仅运行一次的选择器
    void unschedule(SEL_SCHEDULE selector);    // 取消定时一个选择器
    void unscheduleAllSelectors(void);    // 取消所有定时器,包括update选择器。动作不受影响
    void resumeSchedulerAndActions(void);    // 恢复所有定时器和动作,被onEnter内部调用
    void pauseSchedulerAndActions(void);    // 暂停所有定时器和动作,被onExit内部调用

    好了,今天就介绍到这里。如果,大家有什么不懂的,或者有什么想学习的,可以直接留言哦。
    CocoStudio 讨论学习群:141444261
    Cocos2D-X  讨论学习群:244959010


本文出自 “张鹏飞” 博客,请务必保留此出处http://502317120.blog.51cto.com/4062300/1191871