zoukankan      html  css  js  c++  java
  • Cocos2D-x权威指南: CCNode类方法:

    5.1.4 画图节点CCNode和图层CCLayer

    CCNode中提供的方法,在public块中的方法主要有下面几个部分:

    1、针对节点显示的属性信息读写

    2、针对节点变换的属性信息读写

    3、针对子节点的管理相关方法

    4、针对节点数据绑定的相关方法

    5、针对节点生命周期的相关方法

    6、针对节点处理动作CCAction的相关方法

    7、针对节点定时任务的相关方法

    8、针对节点坐标变换的相关方法在CCNode中的节点都有自己的坐标系,称为节点坐标系,当节点坐标系变换后该节点的全部子节点都会随之变换。

    节点在加入到场景时会參考节点的锚点,锚点缺省定义为该节点的中心,在贴图时候会以锚点为中心,改变锚点并没有改变节点的位置,仅仅是改变了贴图的位置。

    Cocos2d-x中的世界坐标系和openGL坐标系一致,左下角为0,0点,x轴向右,y轴向上。

    CCScene类是CCNode类的子类。和CCNode相比,它仅仅是多了自己的锚点,在屏幕的中间位置。

    CCLayer也是CCNode的子类,相比CCNode添加了用户的交互功能。

    class CC_DLL CCNode : public CCObject  
    {  
    public:  
        CCNode(void);  
        virtual ~CCNode(void);  
        virtual bool init();            //初始化节点  
        static CCNode * create(void);   //创建节点对象  
        const char* description(void);  
        virtual void setZOrder(int zOrder);    //设定节点Z轴排序  
        virtual void _setZOrder(int z);  
        virtual int getZOrder();  
        virtual void setVertexZ(float vertexZ);//设置Z坐标  
        virtual float getVertexZ();  
        virtual void setScaleX(float fScaleX); //设定X轴缩放系数(0-1)  
        virtual float getScaleX();  
        virtual void setScaleY(float fScaleY); //设定Y轴缩放系数  
        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  setPositionX(float x);  
        virtual float getPositionX(void);  
        virtual void  setPositionY(float y);  
        virtual float getPositionY(void);  
        virtual void setSkewX(float fSkewX);    //设定x轴扭曲系数  
        virtual float getSkewX();  
        virtual void setSkewY(float fSkewY);    //设定y轴扭曲系数  
        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);//设置X轴旋转角度  
        virtual float getRotationX();  
        virtual void setRotationY(float fRotationY);//设置Y轴旋转角度  
        virtual float getRotationY();  
     
        //当节点的ZOrder同样时,使用该值做以区分  
        virtual void setOrderOfArrival(unsigned int uOrderOfArrival);  
        virtual unsigned int getOrderOfArrival();  
        //设置GLServer状态  
        virtual void setGLServerState(ccGLServerState glServerState);  
        //获取GLServer状态  
        virtual ccGLServerState getGLServerState();  
        //设置是否忽略锚点位置  
        virtual void ignoreAnchorPointForPosition(bool ignore);  
        //获取是否忽略锚点位置  
        virtual bool isIgnoreAnchorPointForPosition();  
        virtual void addChild(CCNode * child);  //加入子节点  
        virtual void addChild(CCNode * child, int zOrder);  
        virtual void addChild(CCNode* child, int zOrder, int tag);  
        virtual CCArray* getChildren(); //获取全部子节点  
        virtual void setParent(CCNode* parent); //设置父节点  
        virtual CCNode* getParent();      //获取父节点  
        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);  //移除某个tag相应的子节点  
        virtual void removeChildByTag(int tag, bool cleanup);  
        virtual void removeAllChildren();        //移除全部子节点  
        virtual void removeAllChildrenWithCleanup(bool cleanup);  
        virtual void reorderChild(CCNode * child, int zOrder);//重排某个子节点  
        virtual void sortAllChildren();  //对全部子节点重拍  
        virtual CCGridBase* getGrid();   //获取网格对象  
        virtual void setGrid(CCGridBase *pGrid); //设置网格对象  
        virtual int getTag() const;    //获取当前节点的Tag  
        virtual void setTag(int nTag); //设置当前节点的Tag  
        virtual void* getUserData();   //获取用户数据  
        virtual void setUserData(void *pUserData); //设置用户数据  
        virtual CCObject* getUserObject();        //获取用户数据对象  
        virtual void setUserObject(CCObject *pUserObject); //设置用户数据对象  
        virtual CCGLProgram* getShaderProgram(); //获取Shader程序  
        virtual void setShaderProgram(CCGLProgram *pShaderProgram);  
        virtual CCCamera* getCamera();        //获取摄像机对象  
        virtual bool isRunning();             //获取当前Node是否在运行  
        virtual void registerScriptHandler(int handler); //注冊脚本Handler  
        virtual void unregisterScriptHandler(void);  
        inline int getScriptHandler() { return m_nScriptHandler; };  
        //运行Lua脚本计划任务  
        void scheduleUpdateWithPriorityLua(int nHandler, int priority);  
        virtual void onEnter() ;                   //进入节点对象  
        virtual void onEnterTransitionDidFinish(); //进入节点动画完毕  
        virtual void onExit();                     //离开节点对象  
        virtual void onExitTransitionDidStart();   //离开节点动画完毕  
        virtual void cleanup(void);                //停止全部动画和调度  
        virtual void draw(void);                   //画图,渲染当前节点函数  
        virtual void visit(void);                  //递归遍历当前节点树  
        CCRect boundingBox(void);                  //返回节点区域  
        //设置当前节点的ActionManager  
        virtual void setActionManager(CCActionManager* actionManager);  
        virtual CCActionManager* getActionManager();  
        CCAction* runAction(CCAction* action);     //让当前节点运行动作  
        void stopAllActions(void);                 //停止全部动作  
        void stopAction(CCAction* action);         //停止某一个动作  
        void stopActionByTag(int tag);             //停止标记为tag的动作  
        CCAction* getActionByTag(int tag);         //获取标记为tag的动作  
        unsigned int numberOfRunningActions(void); //返回绑定该节点的动作数  
        virtual void setScheduler(CCScheduler* scheduler); //设置任务管理器  
        virtual CCScheduler* getScheduler();               //获取任务管理器  
        bool isScheduled(SEL_SCHEDULE selector);        //是否运行了某个任务  
        void scheduleUpdate(void);                  //运行定时调用任务update  
        //依照指定优先级运行update任务  
        void scheduleUpdateWithPriority(int priority);   
        void unscheduleUpdate(void); //停止update任务  
       //指定依照的时间间隔和等待时间,指定次数运行某个任务  
        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);        //定时任务回调方法  
       void transform(void);                    //矩阵坐标变换  
       void transformAncestors(void);           //预设变换矩阵  
       virtual void updateTransform(void);      //变换方法  
        //仿射变换从当前节点到父节点  
        virtual CCAffineTransform nodeToParentTransform(void);  
        //仿射变换从父节点到当前节点  
        virtual CCAffineTransform parentToNodeTransform(void);  
        //仿射变换当前节点到世界节点  
        virtual CCAffineTransform nodeToWorldTransform(void);  
        //仿射变换世界节点到当前节点  
        virtual CCAffineTransform worldToNodeTransform(void);  
        //转化为节点空间坐标,相对于节点左下角,与锚点无关  
        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);  
        //设置变换  
        void setAdditionalTransform(const CCAffineTransform&   
                                             additionalTransform);  
        //获取组件  
        CCComponent* getComponent(const char *pName) const;  
        //加入组件   
        virtual bool addComponent(CCComponent *pComponent);  
        //移除组件  
        virtual bool removeComponent(const char *pName);  
        //移除全部组件  
        virtual void removeAllComponents();  
        private:  
        void childrenAlloc(void);  
        void insertChild(CCNode* child, int z);  
        void detachChild(CCNode *child, bool doCleanup);  
        CCPoint convertToWindowSpace(const CCPoint& nodePoint);  
    ......  
    }  

  • 相关阅读:
    WebService 安静点
    爬虫(一) 安静点
    wpf(三) 安静点
    wpf问题解决链接 安静点
    wpf(一) 安静点
    webapi(一) 安静点
    WPF(二)之为对象属性赋值 安静点
    wpf(四) 安静点
    云计算实验二 Docker实验docker安装
    新闻分类中文分词+词云展示(2)
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/4007996.html
Copyright © 2011-2022 走看看