![[cocos2dx]重要父类——CCNode节点类,第1张 [cocos2dx]重要父类——CCNode节点类,第1张](/aiimages/%5Bcocos2dx%5D%E9%87%8D%E8%A6%81%E7%88%B6%E7%B1%BB%E2%80%94%E2%80%94CCNode%E8%8A%82%E7%82%B9%E7%B1%BB.png)
节点类CCNode可以说是游戏元素的祖宗了,基本上我们看得到的游戏元素都是以它为原型进行扩展的。像CCScene,cclayer,CCSprite,Ccmenu,CCParticleBatchNode等等都是从CCNode继承而来。另外如果我们要自定义精灵,那么从CCNode继承也是一个很不错的选择。CCNode直接从CCObject继承而来,有如下几个特点:
一些子类化的节点提供了更为丰富的特性和功能。
属性
Features of CCNode: - position //位置,默认(0,0) - scale (x,y) //缩放,默认(1,1) - rotation (in degrees,clockwise) //旋转,默认为0 - skew //倾斜,默认为0 - CCCamera (an interface to gluLookAt ) //CCCamera,视点转换,每个节点都有,默认指向节点中心 - CCGrIDBase (to do mesh transformations) //CCGrIDBase,网类转变 - anchor point //锚点,默认(0,0) - size //尺寸,默认(0,0) - visible //可见 - z-order //z轴值 - openGL z position //OpenGL z值
初始化
//初始化函数,成功返回true virtual bool init(); //分配内存空间,调用init并添加autoRelease标记 static CCNode * create(voID); //返回描述字符串 const char* description(voID);
图形属性
//设置/获取Z轴顺序,Z轴大的覆盖Z轴小的 virtual voID setZOrder(int zOrder); virtual voID _setZOrder(int z); virtual int getZOrder(); //设置/获取OpenGL Z轴顶点 virtual voID setVertexZ(float vertexZ); virtual float getVertexZ(); //设置/获取缩放值 virtual voID setScaleX(float fScaleX); virtual float getScaleX(); virtual voID setScaleY(float fScaleY); virtual float getScaleY(); virtual voID setScale(float scale); virtual float getScale(); virtual voID setScale(float fScaleX,float fScaleY); //设置/获取位置 virtual voID setposition(const CCPoint &position); virtual const CCPoint& getposition(); virtual voID setposition(float x,float y); virtual voID getposition(float* x,float* y); virtual voID setpositionX(float x); virtual float getpositionX(voID); virtual voID setpositionY(float y); virtual float getpositionY(voID); //设置/获取倾斜角度 virtual voID setSkewX(float fSkewX); virtual float getSkewX(); virtual voID setSkewY(float fSkewY); virtual float getSkewY(); //设置/获取锚点 virtual voID setAnchorPoint(const CCPoint& anchorPoint); virtual const CCPoint& getAnchorPoint(); virtual const CCPoint& getAnchorPointInPoints(); //设置/获取大小 virtual voID setContentSize(const CCSize& contentSize); virtual const CCSize& getContentSize() const; //设置/获取可见性 virtual voID setVisible(bool visible); virtual bool isVisible(); //设置/获取旋转角度 virtual voID setRotation(float fRotation); virtual float getRotation(); virtual voID setRotationX(float fRotaionX); virtual float getRotationX(); virtual voID setRotationY(float fRotationY); virtual float getRotationY();
节点 *** 作
//添加/获取子节点,可以带Z轴顺序(默认为0)和标签 virtual voID addChild(CCNode * child); virtual voID addChild(CCNode * child,int zOrder); virtual voID addChild(CCNode* child,int zOrder,int tag); CCNode * getChildByTag(int tag); virtual CCArray* getChildren(); unsigned int getChildrenCount(voID) const; //设置/获取父节点 virtual voID setParent(CCNode* parent); virtual CCNode* getParent(); //从父节点中移除自身,默认cleanup为true virtual voID removeFromParent(); virtual voID removeFromParentAndCleanup(bool cleanup); //移除子节点 virtual voID removeChild(CCNode* child); virtual voID removeChild(CCNode* child,bool cleanup); virtual voID removeChildByTag(int tag); virtual voID removeChildByTag(int tag,bool cleanup); //移除所有节点 virtual voID removeAllChildren(); virtual voID removeAllChildrenWithCleanup(bool cleanup); //重新设置节点顺序 virtual voID reorderChild(CCNode * child,int zOrder);
标签和用户数据
//设置/获取tag virtual int getTag() const; virtual voID setTag(int nTag); //设置/获取userdata,它是一个指针可以指向你想要的任意数据块,不过记得要释放 virtual voID* getUserData(); virtual voID setUserData(voID *pUserData); //设置/获取CCObject,和上面一样,只是数据换成了CCObject对象 virtual CCObject* getUserObject(); virtual voID setUserObject(CCObject *pUserObject);
事件回调
//节点开始进入触发 virtual voID onEnter(); //节点完成进入触发 virtual voID onEnterTransitionDIDFinish(); //节点退出触发 virtual voID onExit(); //如果节点退出有过渡动画,动画开始时触发 virtual voID onExitTransitionDIDStart(); //停止动画和调度器 virtual voID cleanup(voID);
动作
//获取/设置动作管理器 virtual voID setActionManager(CCActionManager* actionManager); virtual CCActionManager* getActionManager(); //运行动作 CCAction* runAction(CCAction* action); //停止动作 voID stopAllActions(voID); voID stopAction(CCAction* action); voID stopActionByTag(int tag); CCAction* getActionByTag(int tag); //获取正在运行动作数 unsigned int numberOfRunningActions(voID);
调度器和定时器
//获取/设置调度器 virtual voID setScheduler(CCScheduler* scheduler); virtual CCScheduler* getScheduler(); //检测某个调度器是否有在运行 bool isScheduled(SEL_SCHEDulE selector); //开启update调度 voID scheduleUpdate(voID); //设置调度优先级 voID scheduleUpdateWithPriority(int priority); //关闭update调度器 voID unscheduleUpdate(voID); //开启/关闭/恢复/暂停调度器 voID schedule(SEL_SCHEDulE selector,float interval,unsigned int repeat,float delay); voID schedule(SEL_SCHEDulE selector,float interval); voID scheduleOnce(SEL_SCHEDulE selector,float delay); voID schedule(SEL_SCHEDulE selector); voID unschedule(SEL_SCHEDulE selector); voID unscheduleAllSelectors(voID); voID resumeSchedulerAndActions(voID); voID pauseSchedulerAndActions(voID); //每帧调用函数 virtual voID update(float delta);
坐标转换
//坐标转换相关,这一部分后面再介绍 CCPoint convertToNodeSpace(const CCPoint& worldPoint); CCPoint convertToWorldspace(const CCPoint& nodePoint); CCPoint convertToNodeSpaceAR(const CCPoint& worldPoint); CCPoint convertToWorldspaceAR(const CCPoint& nodePoint); CCPoint converttouchToNodeSpace(CCtouch * touch); CCPoint converttouchToNodeSpaceAR(CCtouch * touch);
其他
//获取/设置着色程序 virtual CCGLProgram* getShaderProgram(); virtual voID setShaderProgram(CCGLProgram *pShaderProgram); //获取CCCamera对象 virtual CCCamera* getCamera(); //节点是否在运行 virtual bool isRunning(); //绘制节点 virtual voID draw(voID); //递归访问节点 virtual voID visit(voID); //返回所占矩形,节点坐标系 CCRect boundingBox(voID);总结
以上是内存溢出为你收集整理的[cocos2dx]重要父类——CCNode节点类全部内容,希望文章能够帮你解决[cocos2dx]重要父类——CCNode节点类所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)