Cocos2D-x权威指南: CCNode类方法:

来源:互联网 发布:hadoop搭建大数据平台 编辑:程序博客网 时间:2024/05/21 20:29

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);  ......  }  

0 0