[cocos2dx]重要父类——CCNode节点类

[cocos2dx]重要父类——CCNode节点类,第1张

概述概述 节点类CCNode可以说是游戏元素的祖宗了,基本上我们看得到的游戏元素都是以它为原型进行扩展的。像CCScene,CCLayer,CCSprite,CCMenu,CCParticleBatchNode等等都是从CCNode继承而来。另外如果我们要自定义精灵,那么从CCNode继承也是一个很不错的选择。CCNode直接从CCObject继承而来,有如下几个特点: 可以包含其他CCNode节点, 概述


节点类CCNode可以说是游戏元素的祖宗了,基本上我们看得到的游戏元素都是以它为原型进行扩展的。像CCScene,cclayer,CCSprite,Ccmenu,CCParticleBatchNode等等都是从CCNode继承而来。另外如果我们要自定义精灵,那么从CCNode继承也是一个很不错的选择。CCNode直接从CCObject继承而来,有如下几个特点:

可以包含其他CCNode节点,可以进行添加/获取/删除子节点 *** 作。 可以执行周期性的回调任务。 可以执行动作。
一些子类化的节点提供了更为丰富的特性和功能。
属性
    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节点类所遇到的程序开发问题。

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

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

原文地址:https://54852.com/web/1065364.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存