cocos2d-x学习笔记-CCNode

cocos2d-x学习笔记-CCNode,第1张

概述cocos2d-x学习笔记-CCNode 10-27 cocos2d-x Alex Zhou 10,719前面用cocos2d-x完成了一个简单的demo,已经对使用cocos2d-x开发游戏有了一个大概的认识,现在来学习cocos2d-x中的常用类CCNode。学习cocos2d-x应该先了解它的整体结构,从大方向出发再逐步掌握细节问题,分而治之。cocos2d-x的类采用的是树状继承的方式,C cocos2d-x学习笔记-CCNode 10-27 cocos2d-x Alex Zhou 10,719前面用cocos2d-x完成了一个简单的demo,已经对使用cocos2d-x开发游戏有了一个大概的认识,现在来学习cocos2d-x中的常用类CCNode。学习cocos2d-x应该先了解它的整体结构,从大方向出发再逐步掌握细节问题,分而治之。cocos2d-x的类采用的是树状继承的方式,CCNode类是一个比较核心的类,下图是类结构图:CCObject类是cocos2d-x中所有对象的基类,可以理解成java中的Object类,它封装了对象的引用计数和自动释放功能。从上图可知,CCNode是场景、层、菜单、精灵等所有节点的父类,而我们在使用cocos2d-x开发游戏时,接触的最多的就是场景、层、精灵这些东东,所以擒贼先擒王,下面就来了解一下CCNode内部包含的主要函数,在后期开发中会经常使用这些函数。//获取节点的顺序,ZOrder:节点的Z轴,当有多个节点在屏幕显示时,引擎会根据它们Z轴的大小决定绘制顺序,Z轴大的会盖住Z轴小的virtual int getZOrder(voID)//获取节点的位置(x,y)virtual const CCPoint& getposition(voID)//设置节点的位置virtual voID setposition(const CCPoint &var)//获取其对应的摄像机,因为cocos2d-x是通过3D方式绘制2D效果的virtual CCCamera* getCamera(voID)//判断节点是否可见virtual bool getIsVisible(voID)//设置节点可见性virtual voID setIsVisible(bool var)//获取节点的锚点的位置virtual const CCPoint& getAnchorPoint(voID)//设置节点的锚点位置virtual voID setAnchorPoint(const CCPoint &var)//获取节点的尺寸,无论节点时缩放还是旋转,尺寸不变。层和场景的尺寸是屏幕的大小virtual const CCSize& getContentSize(voID)//设置节点的尺寸virtual voID setContentSize(const CCSize &var)//判断节点是否在运行virtual bool getIsRunning(voID)//获取父节点virtual CCNode* getParent(voID)//获取节点的tagvirtual int getTag(voID)//设置节点的tagvirtual voID setTag(int var)//创建和初始化一个节点,该节点会自动释放static CCNode * node(voID);//节点开始进入舞台时执行virtual voID onEnter();//节点进入舞台后执行virtual voID onEnterTransitionDIDFinish();//节点离开舞台时执行virtual voID onExit();//添加子节点,z-order默认值为0virtual voID addChild(CCNode * child);//添加子节点,指定z-order值virtual voID addChild(CCNode * child,int zOrder);//添加子节点,指定z-order值和tagvirtual voID addChild(CCNode * child,int zOrder,int tag);//从父节点中删除当前节点,如果cleanup为true则清除当前节点的所有动作及回调函数;如果当前节点没有父节点则什么也不做voID removeFromParentAndCleanup(bool cleanup);//删除指定节点,如果cleanup为true则清除指定节点的所有动作virtual voID removeChild(CCNode* child,bool cleanup);//通过tag删除节点,如果cleanup为true则清除该节点的所有动作voID removeChildByTag(int tag,bool cleanup);//删除所有子节点,如果cleanup为true则清除节点的所有动作virtual voID removeAllChildrenWithCleanup(bool cleanup);//通过tag获取节点CCNode * getChildByTag(int tag);//重新给指定节点的zOrder赋值virtual voID reorderChild(CCNode * child,int zOrder);//清除所有动作及任务调度函数virtual voID cleanup(voID);//绘制节点自己virtual voID draw(voID);//递归visit和draw子节点virtual voID visit(voID);//返回节点对象的矩形框(由坐标和宽高组合而成)CCRect boundingBox(voID);//执行动作CCAction* runAction(CCAction* action);//停止所有的动作voID stopAllActions(voID);//从动作序列中删除指定动作voID stopAction(CCAction* action);//通过tag删除动作voID stopActionByTag(int tag);//通过tag获取动作CCAction* getActionByTag(int tag);//执行节点的update函数,每帧都执行voID scheduleUpdate(voID);//取消执行节点的update函数voID unscheduleUpdate(voID);//定义一个定时器,每帧调用一次指定函数voID schedule(SEL_SCHEDulE selector);//定义一个定时器,可以每隔一定的时间调用一次指定函数voID schedule(SEL_SCHEDulE selector,ccTime interval);//取消一个定时器voID unschedule(SEL_SCHEDulE selector);//取消所有定时器,包括scheduleUpdate,不影响动作voID unscheduleAllSelectors(voID);//恢复所有定时器和动作voID resumeSchedulerAndActions(voID);//暂停所有定时器和动作voID pauseSchedulerAndActions(voID); 上一篇 下一篇版权属于: Alex Zhou的BLOG原文地址: http://CodingNow.cn/cocos2d-x/765.HTML转载时必须以链接形式注明原始出处及本声明。 总结

以上是内存溢出为你收集整理的cocos2d-x学习笔记-CCNode全部内容,希望文章能够帮你解决cocos2d-x学习笔记-CCNode所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1008095.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存