[cocos2d-x] --- CCNode类详解

来源:互联网 发布:淘宝网免费下载 编辑:程序博客网 时间:2024/05/01 10:11

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

 

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

 

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

//初始化CCNodebool 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默认为0void addChild(CCNode * child);//添加子节点void addChild(CCNode * child, int zOrder);//添加子节点 指定节点zOrder和节点tagvoid 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);//从父节点中删除当前子节点 并指定Cleanupvoid removeChild(CCNode* child, bool cleanup);//通过tag名称移除节点void removeChildByTag(int tag);//通过tag名称移除节点并指定Cleanupvoid removeChildByTag(int tag, bool cleanup);//移除所有子节点void removeAllChildren();//移除所有子节点 并指定Cleanupvoid removeAllChildrenWithCleanup(bool cleanup);//重新设定节点的zOrdervoid 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);//获取被所有动作使用的CCActionMangerCCActionManager* 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);
原创粉丝点击