CCNode类详解

转自:http://blog.csdn.net/qiurisuixiang/article/details/8763260

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

 

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

 

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

  1. //初始化CCNode  
  2. bool init();  
  3.   
  4. //生成CCNode对象  
  5. CCNode * create(void);  
  6.   
  7. //获取描述字符串 便于调试  
  8. const char* description(void);  
  9.   
  10. //设置节点Z轴顺序 当有多个节点在Z轴显示时 引擎会根据它们Z轴的大小决定绘制顺序 Z轴大的会覆盖Z轴小的  
  11. void setZOrder(int zOrder);  
  12. void _setZOrder(int z);  
  13. //获取节点Z轴顺序  
  14. int getZOrder();  
  15.   
  16. //设置OpenGL Z轴顶点  
  17. void setVertexZ(float vertexZ);  
  18. //获取OpenGL Z轴顶点  
  19. float getVertexZ();  
  20.   
  21. //设置节点X轴比例因子  
  22. void setScaleX(float fScaleX);  
  23. //获取节点X轴比例因子  
  24. float getScaleX();  
  25.   
  26. //设置节点Y轴比例因子  
  27. void setScaleY(float fScaleY);  
  28. //获取节点Y轴比例因子  
  29. float getScaleY();  
  30.   
  31. //设置节点比例因子 同时设置X轴、Y轴  
  32. void setScale(float scale);  
  33. //获取节点比例因子 必须X轴、Y轴比例因子相等  
  34. float getScale();  
  35.   
  36. //设置节点(x, y)在OpenGL中的坐标   
  37. void setPosition(const CCPoint &position);  
  38. //获取节点(x, y)在OpenGL中的坐标   
  39. const CCPoint& getPosition();  
  40.   
  41. //设置节点(x, y)在OpenGL中的坐标  
  42. void setPosition(float x, float y);  
  43. //获取节点(x, y)在OpenGL中的坐标  
  44. void getPosition(float* x, float* y);  
  45.   
  46. //设置节点在OpenGL中的X坐标  
  47. void setPositionX(float x);  
  48. //获取节点在OpenGL中的X坐标  
  49. float getPositionX(void);  
  50. //设置节点在OpenGL中的Y坐标  
  51. void setPositionY(float y);  
  52. //获取节点在OpenGL中的Y坐标  
  53. float getPositionY(void);  
  54.   
  55. //设置X轴的倾斜角度  
  56. void setSkewX(float fSkewX);  
  57. //获取X轴的倾斜角度  
  58. float getSkewX();  
  59.   
  60. //设置Y轴的倾斜角度  
  61. void setSkewY(float fSkewY);  
  62. //获取Y轴的倾斜角度  
  63. float getSkewY();  
  64.   
  65. //设置节点锚点的位置  
  66. void setAnchorPoint(const CCPoint& anchorPoint);  
  67. //获取节点锚点的位置  
  68. const CCPoint& getAnchorPoint();  
  69.   
  70. //设置节点的尺寸  
  71. void setContentSize(const CCSize& contentSize);  
  72. //获取节点的尺寸  
  73. const CCSize& getContentSize();  
  74.   
  75. //设置节点是否可见  
  76. void setVisible(bool visible);  
  77. //获取节点是否可见  
  78. bool isVisible();  
  79.   
  80. //设置节点自转角度  
  81. void setRotation(float fRotation);  
  82. //获取节点自转角度  
  83. float getRotation();  
  84.   
  85. //zOrder 当有多个节点在Z轴显示时 引擎会根据它们Z轴的大小决定绘制顺序 Z轴大的会覆盖Z轴小的  
  86. //添加子节点 zOrder默认为0  
  87. void addChild(CCNode * child);  
  88. //添加子节点  
  89. void addChild(CCNode * child, int zOrder);  
  90. //添加子节点 指定节点zOrder和节点tag  
  91. void addChild(CCNode* child, int zOrder, int tag);  
  92.   
  93. //通过tag名称获取节点  
  94. CCNode * getChildByTag(int tag);  
  95. //获取所有子节点  
  96. CCArray* getChildren();  
  97. //获取子节点数目  
  98. unsigned int getChildrenCount(void);  
  99.   
  100. //设置子节点的父节点  
  101. void setParent(CCNode* parent);  
  102. //获取子节点的父节点  
  103. CCNode* getParent();  
  104.   
  105. //从父节点中删除当前子节点  
  106. void removeFromParent();  
  107. //从父节点中删除当前子节点 如果Cleanup为true则删除当前节点的所有动作及回调函数  
  108. void removeFromParentAndCleanup(bool cleanup);  
  109. //从父节点中删除当前子节点 如果Cleanup为true则删除当前节点的所有动作  
  110. void removeChild(CCNode* child);  
  111. //从父节点中删除当前子节点 并指定Cleanup  
  112. void removeChild(CCNode* child, bool cleanup);  
  113. //通过tag名称移除节点  
  114. void removeChildByTag(int tag);  
  115. //通过tag名称移除节点并指定Cleanup  
  116. void removeChildByTag(int tag, bool cleanup);  
  117. //移除所有子节点  
  118. void removeAllChildren();  
  119. //移除所有子节点 并指定Cleanup  
  120. void removeAllChildrenWithCleanup(bool cleanup);  
  121.   
  122. //重新设定节点的zOrder  
  123. void reorderChild(CCNode * child, int zOrder);  
  124.   
  125. //重新排序所有子节点  
  126. void sortAllChildren();  
  127.   
  128. //获取节点的tag名称  
  129. int getTag();  
  130. //设置节点的tag名称  
  131. void setTag(int nTag);  
  132.   
  133. //获取节点的CCCamera摄像机 cocos2d-x是通过3D方式绘制2D效果  
  134. CCCamera* getCamera();  
  135.   
  136. //判断当前节点是否在运行  
  137. bool isRunning();  
  138.   
  139. //节点开始进入舞台时的回调事件  
  140. void onEnter();  
  141. //节点进入舞台时的回调事件  
  142. void onEnterTransitionDidFinish();  
  143. //节点离开舞台时的回调事件  
  144. void onExit();  
  145.   
  146. //停止所有运行的动作和回调函数  
  147. void cleanup(void);  
  148.   
  149. //绘制节点  
  150. void draw(void);  
  151.   
  152. //递归visit子节点并重绘  
  153. void visit(void);  
  154.   
  155. //返回节点对象的矩形框(由坐标宽高组成)  
  156. CCRect boundingBox(void);  
  157.   
  158. //设置CCActionManager对象被所有动作使用  
  159. void setActionManager(CCActionManager* actionManager);  
  160. //获取被所有动作使用的CCActionManger  
  161. CCActionManager* getActionManager();  
  162.   
  163. //执行动作  
  164. CCAction* runAction(CCAction* action);  
  165. //停止动作  
  166. stopAction(CCAction* action);  
  167.   
  168.   
  169. //停止所有动作  
  170. void stopAllActions(void);  
  171.   
  172. //通过tag名称获取动作  
  173. CCAction* getActionByTag(int tag);  
  174.   
  175. //获取正在运行的动作数量  
  176. unsigned int numberOfRunningActions(void);  
  177.   
  178. //定义一个定时器  
  179. void schedule(SEL_SCHEDULE selector, float interval, unsigned int repeat, float delay);  
  180. //定义一个定时器  
  181. void schedule(SEL_SCHEDULE selector, float interval);  
  182.   
  183. //取消一个定时器  
  184. void unschedule(SEL_SCHEDULE selector);  
  185. //取消所有定时器  
  186. void unscheduleAllSelectors(void);  
  187.   
  188. //暂停所有定时器和动作  
  189. void pauseSchedulerAndActions(void);  
  190. //恢复所有定时器和动作  
  191. void resumeSchedulerAndActions(void);  
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值