cocos2dx游戏中的基本元素之一节点类CCNODE

本文详细解读cocos2d-x引擎中CCNode类的主要特性和常用函数,包括位置、缩放、旋转等属性设置,以及如何在层中添加和管理对象。此外,还介绍了时间回调函数和动作绑定的实现方式,帮助开发者更好地理解并应用CCNode类进行游戏开发。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


节点类是cocos2d-x一个主要的类,继承与CCObject 从游戏角度上来说 所有需要在屏幕上渲染的对象都是节点类 最常用的节点类包括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游戏开发技术精解》真不亏是精解 这本书的每一个类的函数和成员都介绍的很仔细

实用价值高《cocos2d-x高级开发教程》也真不亏是高级 这本书是cocos2d-x制作者王哲推荐的一本书 

两本书结合看 我相信你一定收获颇多!!









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值