zoukankan      html  css  js  c++  java
  • cocos2d CCNode类(节点属性大全)

    1 CCNode是cocos2d-x中一个很重要的类,CCNode是场景、层、菜单、精灵等的父类。而我们在使用cocos2d-x时,接触最多的就是场景、层、菜单、精灵等。所以有必要先弄懂CCNode类

    2 CCObject类是cocos2d-x中所有对象的基类,CCObject封装了对象的引用计数和自动释放功能,下面是类图

    3 因为场景、层、精灵、菜菜单是CCNode的子类,所以在使用它们时,有些方法来自CCNode,下面解释了CCNode中常用的方法

    [cpp] 
    //初始化CCNode  
    bool init(); 
     
    //生成CCNode对象  
    CCNode * create(void); 
     
    //获取描述字符串 便于调试  
    const char* description(void); 
     
    //设置节点Z轴顺序 当有多个节点在Z轴显示时 引擎会根据它们Z轴的大小决定绘制顺序 Z轴大的会覆盖Z轴小的  
    void setZOrder(int zOrder); 
    void _setZOrder(int z); 
    //获取节点Z轴顺序  
    int getZOrder(); 
     
    //设置OpenGL Z轴顶点  
    void setVertexZ(float vertexZ); 
    //获取OpenGL Z轴顶点  
    float getVertexZ(); 
     
    //设置节点X轴比例因子  
    void setScaleX(float fScaleX); 
    //获取节点X轴比例因子  
    float getScaleX(); 
     
    //设置节点Y轴比例因子  
    void setScaleY(float fScaleY); 
    //获取节点Y轴比例因子  
    float getScaleY(); 
     
    //设置节点比例因子 同时设置X轴、Y轴  
    void setScale(float scale); 
    //获取节点比例因子 必须X轴、Y轴比例因子相等  
    float getScale(); 
     
    //设置节点(x, y)在OpenGL中的坐标   
    void setPosition(const CCPoint &position); 
    //获取节点(x, y)在OpenGL中的坐标   
    const CCPoint& getPosition(); 
     
    //设置节点(x, y)在OpenGL中的坐标  
    void setPosition(float x, float y); 
    //获取节点(x, y)在OpenGL中的坐标  
    void getPosition(float* x, float* y); 
     
    //设置节点在OpenGL中的X坐标  
    void setPositionX(float x); 
    //获取节点在OpenGL中的X坐标  
    float getPositionX(void); 
    //设置节点在OpenGL中的Y坐标  
    void setPositionY(float y); 
    //获取节点在OpenGL中的Y坐标  
    float getPositionY(void); 
     
    //设置X轴的倾斜角度  
    void setSkewX(float fSkewX); 
    //获取X轴的倾斜角度  
    float getSkewX(); 
     
    //设置Y轴的倾斜角度  
    void setSkewY(float fSkewY); 
    //获取Y轴的倾斜角度  
    float getSkewY(); 
     
    //设置节点锚点的位置  
    void setAnchorPoint(const CCPoint& anchorPoint); 
    //获取节点锚点的位置  
    const CCPoint& getAnchorPoint(); 
     
    //设置节点的尺寸  
    void setContentSize(const CCSize& contentSize); 
    //获取节点的尺寸  
    const CCSize& getContentSize(); 
     
    //设置节点是否可见  
    void setVisible(bool visible); 
    //获取节点是否可见  
    bool isVisible(); 
     
    //设置节点自转角度  
    void setRotation(float fRotation); 
    //获取节点自转角度  
    float getRotation(); 
     
    //zOrder 当有多个节点在Z轴显示时 引擎会根据它们Z轴的大小决定绘制顺序 Z轴大的会覆盖Z轴小的  
    //添加子节点 zOrder默认为0  
    void addChild(CCNode * child); 
    //添加子节点  
    void addChild(CCNode * child, int zOrder); 
    //添加子节点 指定节点zOrder和节点tag  
    void addChild(CCNode* child, int zOrder, int tag); 
     
    //通过tag名称获取节点  
    CCNode * getChildByTag(int tag); 
    //获取所有子节点  
    CCArray* getChildren(); 
    //获取子节点数目  
    unsigned int getChildrenCount(void); 
     
    //设置子节点的父节点  
    void setParent(CCNode* parent); 
    //获取子节点的父节点  
    CCNode* getParent(); 
     
    //从父节点中删除当前子节点  
    void removeFromParent(); 
    //从父节点中删除当前子节点 如果Cleanup为true则删除当前节点的所有动作及回调函数  
    void removeFromParentAndCleanup(bool cleanup); 
    //从父节点中删除当前子节点 如果Cleanup为true则删除当前节点的所有动作  
    void removeChild(CCNode* child); 
    //从父节点中删除当前子节点 并指定Cleanup  
    void removeChild(CCNode* child, bool cleanup); 
    //通过tag名称移除节点  
    void removeChildByTag(int tag); 
    //通过tag名称移除节点并指定Cleanup  
    void removeChildByTag(int tag, bool cleanup); 
    //移除所有子节点  
    void removeAllChildren(); 
    //移除所有子节点 并指定Cleanup  
    void removeAllChildrenWithCleanup(bool cleanup); 
     
    //重新设定节点的zOrder  
    void reorderChild(CCNode * child, int zOrder); 
     
    //重新排序所有子节点  
    void sortAllChildren(); 
     
    //获取节点的tag名称  
    int getTag(); 
    //设置节点的tag名称  
    void setTag(int nTag); 
     
    //获取节点的CCCamera摄像机 cocos2d-x是通过3D方式绘制2D效果  
    CCCamera* getCamera(); 
     
    //判断当前节点是否在运行  
    bool isRunning(); 
     
    //节点开始进入舞台时的回调事件  
    void onEnter(); 
    //节点进入舞台时的回调事件  
    void onEnterTransitionDidFinish(); 
    //节点离开舞台时的回调事件  
    void onExit(); 
     
    //停止所有运行的动作和回调函数  
    void cleanup(void); 
     
    //绘制节点  
    void draw(void); 
     
    //递归visit子节点并重绘  
    void visit(void); 
     
    //返回节点对象的矩形框(由坐标宽高组成)  
    CCRect boundingBox(void); 
     
    //设置CCActionManager对象被所有动作使用  
    void setActionManager(CCActionManager* actionManager); 
    //获取被所有动作使用的CCActionManger  
    CCActionManager* getActionManager(); 
     
    //执行动作  
    CCAction* runAction(CCAction* action); 
    //停止动作  
    stopAction(CCAction* action); 
     
     
    //停止所有动作  
    void stopAllActions(void); 
     
    //通过tag名称获取动作  
    CCAction* getActionByTag(int tag); 
     
    //获取正在运行的动作数量  
    unsigned int numberOfRunningActions(void); 
     
    //定义一个定时器  
    void schedule(SEL_SCHEDULE selector, float interval, unsigned int repeat, float delay); 
    //定义一个定时器  
    void schedule(SEL_SCHEDULE selector, float interval); 
     
    //取消一个定时器  
    void unschedule(SEL_SCHEDULE selector); 
    //取消所有定时器  
    void unscheduleAllSelectors(void); 
     
    //暂停所有定时器和动作  
    void pauseSchedulerAndActions(void); 
    //恢复所有定时器和动作  
    void resumeSchedulerAndActions(void); 

    //初始化CCNode
    bool init();

    //生成CCNode对象
    CCNode * create(void);

    //获取描述字符串 便于调试
    const char* description(void);

    //设置节点Z轴顺序 当有多个节点在Z轴显示时 引擎会根据它们Z轴的大小决定绘制顺序 Z轴大的会覆盖Z轴小的
    void setZOrder(int zOrder);
    void _setZOrder(int z);
    //获取节点Z轴顺序
    int getZOrder();

    //设置OpenGL Z轴顶点
    void setVertexZ(float vertexZ);
    //获取OpenGL Z轴顶点
    float getVertexZ();

    //设置节点X轴比例因子
    void setScaleX(float fScaleX);
    //获取节点X轴比例因子
    float getScaleX();

    //设置节点Y轴比例因子
    void setScaleY(float fScaleY);
    //获取节点Y轴比例因子
    float getScaleY();

    //设置节点比例因子 同时设置X轴、Y轴
    void setScale(float scale);
    //获取节点比例因子 必须X轴、Y轴比例因子相等
    float getScale();

    //设置节点(x, y)在OpenGL中的坐标
    void setPosition(const CCPoint &position);
    //获取节点(x, y)在OpenGL中的坐标
    const CCPoint& getPosition();

    //设置节点(x, y)在OpenGL中的坐标
    void setPosition(float x, float y);
    //获取节点(x, y)在OpenGL中的坐标
    void getPosition(float* x, float* y);

    //设置节点在OpenGL中的X坐标
    void setPositionX(float x);
    //获取节点在OpenGL中的X坐标
    float getPositionX(void);
    //设置节点在OpenGL中的Y坐标
    void setPositionY(float y);
    //获取节点在OpenGL中的Y坐标
    float getPositionY(void);

    //设置X轴的倾斜角度
    void setSkewX(float fSkewX);
    //获取X轴的倾斜角度
    float getSkewX();

    //设置Y轴的倾斜角度
    void setSkewY(float fSkewY);
    //获取Y轴的倾斜角度
    float getSkewY();

    //设置节点锚点的位置
    void setAnchorPoint(const CCPoint& anchorPoint);
    //获取节点锚点的位置
    const CCPoint& getAnchorPoint();

    //设置节点的尺寸
    void setContentSize(const CCSize& contentSize);
    //获取节点的尺寸
    const CCSize& getContentSize();

    //设置节点是否可见
    void setVisible(bool visible);
    //获取节点是否可见
    bool isVisible();

    //设置节点自转角度
    void setRotation(float fRotation);
    //获取节点自转角度
    float getRotation();

    //zOrder 当有多个节点在Z轴显示时 引擎会根据它们Z轴的大小决定绘制顺序 Z轴大的会覆盖Z轴小的
    //添加子节点 zOrder默认为0
    void addChild(CCNode * child);
    //添加子节点
    void addChild(CCNode * child, int zOrder);
    //添加子节点 指定节点zOrder和节点tag
    void addChild(CCNode* child, int zOrder, int tag);

    //通过tag名称获取节点
    CCNode * getChildByTag(int tag);
    //获取所有子节点
    CCArray* getChildren();
    //获取子节点数目
    unsigned int getChildrenCount(void);

    //设置子节点的父节点
    void setParent(CCNode* parent);
    //获取子节点的父节点
    CCNode* getParent();

    //从父节点中删除当前子节点
    void removeFromParent();
    //从父节点中删除当前子节点 如果Cleanup为true则删除当前节点的所有动作及回调函数
    void removeFromParentAndCleanup(bool cleanup);
    //从父节点中删除当前子节点 如果Cleanup为true则删除当前节点的所有动作
    void removeChild(CCNode* child);
    //从父节点中删除当前子节点 并指定Cleanup
    void removeChild(CCNode* child, bool cleanup);
    //通过tag名称移除节点
    void removeChildByTag(int tag);
    //通过tag名称移除节点并指定Cleanup
    void removeChildByTag(int tag, bool cleanup);
    //移除所有子节点
    void removeAllChildren();
    //移除所有子节点 并指定Cleanup
    void removeAllChildrenWithCleanup(bool cleanup);

    //重新设定节点的zOrder
    void reorderChild(CCNode * child, int zOrder);

    //重新排序所有子节点
    void sortAllChildren();

    //获取节点的tag名称
    int getTag();
    //设置节点的tag名称
    void setTag(int nTag);

    //获取节点的CCCamera摄像机 cocos2d-x是通过3D方式绘制2D效果
    CCCamera* getCamera();

    //判断当前节点是否在运行
    bool isRunning();

    //节点开始进入舞台时的回调事件
    void onEnter();
    //节点进入舞台时的回调事件
    void onEnterTransitionDidFinish();
    //节点离开舞台时的回调事件
    void onExit();

    //停止所有运行的动作和回调函数
    void cleanup(void);

    //绘制节点
    void draw(void);

    //递归visit子节点并重绘
    void visit(void);

    //返回节点对象的矩形框(由坐标宽高组成)
    CCRect boundingBox(void);

    //设置CCActionManager对象被所有动作使用
    void setActionManager(CCActionManager* actionManager);
    //获取被所有动作使用的CCActionManger
    CCActionManager* getActionManager();

    //执行动作
    CCAction* runAction(CCAction* action);
    //停止动作
    stopAction(CCAction* action);


    //停止所有动作
    void stopAllActions(void);

    //通过tag名称获取动作
    CCAction* getActionByTag(int tag);

    //获取正在运行的动作数量
    unsigned int numberOfRunningActions(void);

    //定义一个定时器
    void schedule(SEL_SCHEDULE selector, float interval, unsigned int repeat, float delay);
    //定义一个定时器
    void schedule(SEL_SCHEDULE selector, float interval);

    //取消一个定时器
    void unschedule(SEL_SCHEDULE selector);
    //取消所有定时器
    void unscheduleAllSelectors(void);

    //暂停所有定时器和动作
    void pauseSchedulerAndActions(void);
    //恢复所有定时器和动作
    void resumeSchedulerAndActions(void);

  • 相关阅读:
    leetcode算法题基础(五)双指针(一)27 题 移除元素
    kata-shim: Setctty set but Ctty not valid in child: unknown.
    kata-runtime mount
    UVa1636 Headshot
    HDU1150 Machine Schedule
    POJ 1273 Drainage Ditches
    SPOJ GSS1 Can you answer these queries I
    POJ 1840 Eqs
    POJ2001 Shortest Prefixes
    HDU 2795 Billboard
  • 原文地址:https://www.cnblogs.com/luorende/p/7242749.html
Copyright © 2011-2022 走看看