1 CCNode是cocos2d-x中一个很重要的类,CCNode是场景、层、菜单、精灵等的父类。而我们在使用cocos2d-x时,接触最多的就是场景、层、菜单、精灵等。所以有必要先弄懂CCNode类
2 CCObject类是cocos2d-x中所有对象的基类,CCObject封装了对象的引用计数和自动释放功能,下面是类图
3因为场景、层、精灵、菜菜单是CCNode的子类,所以在使用它们时,有些方法来自CCNode,下面解释了CCNode中常用的方法
- //初始化CCNode
- boolinit();
- //生成CCNode对象
- CCNode*create(void);
- //获取描述字符串便于调试
- constchar*description(void);
- //设置节点Z轴顺序当有多个节点在Z轴显示时引擎会根据它们Z轴的大小决定绘制顺序Z轴大的会覆盖Z轴小的
- voidsetZOrder(intzOrder);
- void_setZOrder(intz);
- //获取节点Z轴顺序
- intgetZOrder();
- //设置OpenGLZ轴顶点
- voidsetVertexZ(floatvertexZ);
- //获取OpenGLZ轴顶点
- floatgetVertexZ();
- //设置节点X轴比例因子
- voidsetScaleX(floatfScaleX);
- //获取节点X轴比例因子
- floatgetScaleX();
- //设置节点Y轴比例因子
- voidsetScaleY(floatfScaleY);
- //获取节点Y轴比例因子
- floatgetScaleY();
- //设置节点比例因子同时设置X轴、Y轴
- voidsetScale(floatscale);
- //获取节点比例因子必须X轴、Y轴比例因子相等
- floatgetScale();
- //设置节点(x,y)在OpenGL中的坐标
- voidsetPosition(constCCPoint&position);
- //获取节点(x,153); font-weight:bold; background-color:inherit">constCCPoint&getPosition();
- voidsetPosition(floatx,floaty);
- voidgetPosition(float*x,87); font-weight:bold; background-color:inherit">float*y);
- //设置节点在OpenGL中的X坐标
- voidsetPositionX(floatx);
- //获取节点在OpenGL中的X坐标
- floatgetPositionX(@H_403_343@//设置节点在OpenGL中的Y坐标
- voidsetPositionY(floaty);
- //获取节点在OpenGL中的Y坐标
- floatgetPositionY(@H_403_343@//设置X轴的倾斜角度
- voidsetSkewX(floatfSkewX);
- //获取X轴的倾斜角度
- floatgetSkewX();
- //设置Y轴的倾斜角度
- voidsetSkewY(floatfSkewY);
- //获取Y轴的倾斜角度
- floatgetSkewY();
- //设置节点锚点的位置
- voidsetAnchorPoint(constCCPoint&anchorPoint);
- //获取节点锚点的位置
- constCCPoint&getAnchorPoint();
- //设置节点的尺寸
- voidsetContentSize(constCCSize&contentSize);
- //获取节点的尺寸
- constCCSize&getContentSize();
- //设置节点是否可见
- voidsetVisible(boolvisible);
- //获取节点是否可见
- boolisVisible();
- //设置节点自转角度
- voidsetRotation(floatfRotation);
- //获取节点自转角度
- floatgetRotation();
- //zOrder当有多个节点在Z轴显示时引擎会根据它们Z轴的大小决定绘制顺序Z轴大的会覆盖Z轴小的
- //添加子节点zOrder默认为0
- voidaddChild(CCNode*child);
- //添加子节点
- voidaddChild(CCNode*child,0); background-color:inherit">//添加子节点指定节点zOrder和节点tag
- intzOrder,87); font-weight:bold; background-color:inherit">inttag);
- //通过tag名称获取节点
- CCNode*getChildByTag(inttag);
- //获取所有子节点
- CCArray*getChildren();
- //获取子节点数目
- unsignedintgetChildrenCount(@H_403_343@//设置子节点的父节点
- voidsetParent(CCNode*parent);
- //获取子节点的父节点
- CCNode*getParent();
- //从父节点中删除当前子节点
- voidremoveFromParent();
- //从父节点中删除当前子节点如果Cleanup为true则删除当前节点的所有动作及回调函数
- voidremoveFromParentAndCleanup(boolcleanup);
- //从父节点中删除当前子节点如果Cleanup为true则删除当前节点的所有动作
- voidremoveChild(CCNode*child);
- //从父节点中删除当前子节点并指定Cleanup
- voidremoveChild(CCNode*child,0); background-color:inherit">//通过tag名称移除节点
- voidremoveChildByTag(//通过tag名称移除节点并指定Cleanup
- inttag,0); background-color:inherit">//移除所有子节点
- voidremoveAllChildren();
- //移除所有子节点并指定Cleanup
- voidremoveAllChildrenWithCleanup(//重新设定节点的zOrder
- voidreorderChild(CCNode*child,0); background-color:inherit">//重新排序所有子节点
- voidsortAllChildren();
- //获取节点的tag名称
- intgetTag();
- //设置节点的tag名称
- voidsetTag(intnTag);
- //获取节点的CCCamera摄像机cocos2d-x是通过3D方式绘制2D效果
- CCCamera*getCamera();
- //判断当前节点是否在运行
- boolisRunning();
- //节点开始进入舞台时的回调事件
- voidonEnter();
- //节点进入舞台时的回调事件
- voidonEnterTransitionDidFinish();
- //节点离开舞台时的回调事件
- voidonExit();
- //停止所有运行的动作和回调函数
- voidcleanup(@H_403_343@//绘制节点
- voiddraw(@H_403_343@//递归visit子节点并重绘
- voidvisit(@H_403_343@//返回节点对象的矩形框(由坐标宽高组成)
- CCRectboundingBox(@H_403_343@//设置CCActionManager对象被所有动作使用
- voidsetActionManager(CCActionManager*actionManager);
- //获取被所有动作使用的CCActionManger
- CCActionManager*getActionManager();
- //执行动作
- CCAction*runAction(CCAction*action);
- //停止动作
- stopAction(CCAction*action);
- //停止所有动作
- voidstopAllActions(@H_403_343@//通过tag名称获取动作
- CCAction*getActionByTag(//获取正在运行的动作数量
- intnumberOfRunningActions(@H_403_343@//定义一个定时器
- voidschedule(SEL_SCHEDULEselector,87); font-weight:bold; background-color:inherit">floatinterval,unsignedintrepeat,87); font-weight:bold; background-color:inherit">floatdelay);
- floatinterval);
- //取消一个定时器
- voidunschedule(SEL_SCHEDULEselector);
- //取消所有定时器
- voidunscheduleAllSelectors(@H_403_343@//暂停所有定时器和动作
- voidpauseSchedulerAndActions(@H_403_343@//恢复所有定时器和动作
- voidresumeSchedulerAndActions(void);