CCNODE 节点类
2014-05-28 09:50
253 查看
节点类是cocos2d-x一个主要的类,继承于CCObject。从游戏角度上来说,所有需要在屏幕上渲染的对象都是节点类。同时CCNode是cocos2d-x的渲染链,一般来讲Cocos2D-x同时只能渲染一个CCScene,因此CCScene是渲染的根节点。 在构建游戏时一般是:一个Scene中添加一个或者多个CCLayer;一个Layer中又添加多个CCSprite或者CCMenu;CCSprite中还可以添加CCParticleSystem(粒子系统)等等。这样就构建了一个渲染树,cocos2d-x遍历这个树,来将图像显示在屏幕上。渲染的过程之中层的各个Child按照zOrder排序,以保证渲染的正确性。
最常用的节点类包括:CCScene,CClayer,CCSprite,CCMenu这些都是必不可少的成员.
CCNode的特性是最简单,但是也是应用最广泛的,因为游戏中所有的对象都是他的子类,所以有必要搞清楚CCNode类的一些属性,其中有
位置
缩放尺寸
旋转角度
摄像机朝向
模型网格
锚点
尺寸
是否可见
Z坐标
openGL Z坐标
这些属性其实就是一个类中的一些成员变量.
有成员变量就一定会有成员函数。CCNode设置这些属性有三个最重要的三类成员函数
1,类对象的初始化和内容
2,时间回调函数
3,重载绘制函数
cocos2d-x作为一个强悍的游戏引擎,一个类所包含的类成员函数一定很多。我在这里只是介绍一些常用的函数
addchild(ccnode* child);
addchild(ccnode*child,int zorder);
addchild(ccnode*child,int zorder,int tag);
addchild有三个这样的重载的函数 这个功能最多的用在CClayer这个子类中。
因为游戏中把相关的一些对象都放在一个CCLayer中显示,实际开发中程序猿创建一个CCLayer 然后通过静态函数创建一个CCSence添加到这个层中。
至于以后要具体要显示的精灵或者粒子系统又或者动作都是以CCNode的子类对象通过addchild函数添加到层中绘制
这里需要说明的是在二维平面世界除了X和Y轴以外 Z轴被用来描述的物体之间的遮挡关系也就是addchild函数的第二个参数 int zorder。这里需要记住的是一个CCNode的子类其Z轴坐标越小,就会离屏幕越远,这个对象被遮挡的可能性越大
virtual void onenter
virtual void onentertransitiondidfinish
virtual void onexit
virtual void onexittransitiondidstart
这些函数常常用在CCSence这个类中 onenter和onexit这两个函数主要是在进入场景和退出场景的时候做一些初始化工作和清理工作,这两个函数是只要切换场景时就会被自动调用的。
但是onentertransitiondidfinish和onexittransitiondidstart是否会被调用取决于在场景转换的时候时候使用的特效,也就是CCTransitionSence函数。
runAction(ccaction* action)
这个函数常常被使用在CCSprite类中。自己制作了一个动作,但是这个动作如果你不绑定一个精灵,你是无法看到实际的运动效果。
假设一个人是一个精灵my,你制作了一个跑步的动作run,需要时人来执行。
则调用:my->runAction(run);这样在游戏中,你就可以看到人走路的效果。
接下来要介绍的一个比较智能的函数,就是时间回调函数既和定时器有关的函数
void schedule(SE_SCHEDULE selector)
SE_SCHEDULE这个是一个选择器 类似于C++中的一个类函数指针的机制,用来创建一个函数指针。其实参数就是你需要定时需要执行的函数指针。
由于cocos2d-x继承了cocos2d-iphone的代码风格,因此它提供了一些Objective-c中创建选择器的语法宏,用来创建函数指针。
schedule_selector()
callfunc_selector()
callfuncN_selector()
callfunc_selector()
到这里已经介绍了需要介绍的CCNode的比较常用的内容和属性。需要说明的是:学好cocos2d-x就必须要搞清楚它的框架和继承关系,从根源学习到细末这里我只是介绍了简单和常用的函数具体其他的函数可以查阅相关专业书籍。
最常用的节点类包括:CCScene,CClayer,CCSprite,CCMenu这些都是必不可少的成员.
CCNode的特性是最简单,但是也是应用最广泛的,因为游戏中所有的对象都是他的子类,所以有必要搞清楚CCNode类的一些属性,其中有
位置
缩放尺寸
旋转角度
摄像机朝向
模型网格
锚点
尺寸
是否可见
Z坐标
openGL Z坐标
这些属性其实就是一个类中的一些成员变量.
有成员变量就一定会有成员函数。CCNode设置这些属性有三个最重要的三类成员函数
1,类对象的初始化和内容
2,时间回调函数
3,重载绘制函数
cocos2d-x作为一个强悍的游戏引擎,一个类所包含的类成员函数一定很多。我在这里只是介绍一些常用的函数
addchild(ccnode* child);
addchild(ccnode*child,int zorder);
addchild(ccnode*child,int zorder,int tag);
addchild有三个这样的重载的函数 这个功能最多的用在CClayer这个子类中。
因为游戏中把相关的一些对象都放在一个CCLayer中显示,实际开发中程序猿创建一个CCLayer 然后通过静态函数创建一个CCSence添加到这个层中。
至于以后要具体要显示的精灵或者粒子系统又或者动作都是以CCNode的子类对象通过addchild函数添加到层中绘制
这里需要说明的是在二维平面世界除了X和Y轴以外 Z轴被用来描述的物体之间的遮挡关系也就是addchild函数的第二个参数 int zorder。这里需要记住的是一个CCNode的子类其Z轴坐标越小,就会离屏幕越远,这个对象被遮挡的可能性越大
virtual void onenter
virtual void onentertransitiondidfinish
virtual void onexit
virtual void onexittransitiondidstart
这些函数常常用在CCSence这个类中 onenter和onexit这两个函数主要是在进入场景和退出场景的时候做一些初始化工作和清理工作,这两个函数是只要切换场景时就会被自动调用的。
但是onentertransitiondidfinish和onexittransitiondidstart是否会被调用取决于在场景转换的时候时候使用的特效,也就是CCTransitionSence函数。
runAction(ccaction* action)
这个函数常常被使用在CCSprite类中。自己制作了一个动作,但是这个动作如果你不绑定一个精灵,你是无法看到实际的运动效果。
假设一个人是一个精灵my,你制作了一个跑步的动作run,需要时人来执行。
则调用:my->runAction(run);这样在游戏中,你就可以看到人走路的效果。
接下来要介绍的一个比较智能的函数,就是时间回调函数既和定时器有关的函数
void schedule(SE_SCHEDULE selector)
SE_SCHEDULE这个是一个选择器 类似于C++中的一个类函数指针的机制,用来创建一个函数指针。其实参数就是你需要定时需要执行的函数指针。
由于cocos2d-x继承了cocos2d-iphone的代码风格,因此它提供了一些Objective-c中创建选择器的语法宏,用来创建函数指针。
schedule_selector()
callfunc_selector()
callfuncN_selector()
callfunc_selector()
到这里已经介绍了需要介绍的CCNode的比较常用的内容和属性。需要说明的是:学好cocos2d-x就必须要搞清楚它的框架和继承关系,从根源学习到细末这里我只是介绍了简单和常用的函数具体其他的函数可以查阅相关专业书籍。
相关文章推荐
- 【Cocos2d-X开发学习笔记】第02期:渲染框架之节点类(CCNode)的使用 [
- cocos2d-X学习之主要类介绍:节点CCNode
- CCNode节点类和获取当前语言
- CCNode如何变换父亲节点parent
- 【Cocos2d-X开发学习笔记】第02期:渲染框架之节点类(CCNode)的使用
- CCNode如何变换父亲节点parent
- cocos2d-X学习之主要类介绍:节点CCNode
- cocos2d-X学习之主要类介绍:节点CCNode
- (转载)cocos2d-X学习之主要类介绍:节点CCNode
- CCNode如何变换父亲节点parent
- cocos2d-X学习之主要类介绍:节点CCNode
- 节点类(CCNode)
- Cocos2d-x 节点类(CCNode)
- 【Cocos2d-X开发学习笔记】第02期:渲染框架之节点类(CCNode)的使用
- (转)cocos2d-X学习之主要类介绍:节点CCNode
- 使用GetLogicalProcessorInformation获取逻辑处理器的详细信息(NUMA节点数、物理CPU数、CPU核心数、逻辑CPU数、各级Cache)
- C#程序中:如何删除xml文件中的节点、元素。
- XML通过XSL格式化的那点事(XML到自定义节点折叠显示)
- 基于ARM的智能灯光控制系统(10)网络节点
- Oracle RAC升级第四步,清理错误节点名