• cocos2d-x CCNode类


    文章引用自http://blog.csdn.net/qiurisuixiang/article/details/8763260

    1 CCNodecocos2d-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); 
  • 相关阅读:
    Docker Secrets
    Docker swarm 使用服务编排部署lnmp
    Docker Swarm 服务编排之命令
    Docker Swarm应用--lnmp部署WordPress
    How to suppress 'Maybe this is program method' warnings from ProGuard
    ProGuard代码混淆详细攻略
    ProGuard代码混淆技术详解
    Web攻防之XSS,CSRF,SQL注入
    Spring中初始化bean和销毁bean的时候执行某个方法的详解
    数据库事务隔离级别+Spring 声明性事务隔离级别
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/5093037.html
Copyright © 2020-2023  润新知