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
- Cocos2D-x权威指南: CCNode类方法:
- Cocos2D-x权威指南:核心类成员CCNode
- cocos2d-x CCNode类
- Cocos2D-x权威指南
- Cocos2D-x权威指南
- [cocos2d-x] --- CCNode类详解
- [cocos2d-x] --- CCNode类详解
- [cocos2d-x] --- CCNode类详解
- [cocos2d-x] --- CCNode类详解
- Cocos2d-x之CCNode类
- Cocos2d-X权威指南笔记
- Cocos2d-X权威指南笔记
- Cocos2d-X权威指南笔记
- Cocos2d-X权威指南笔记
- Cocos2d-x CCNode 类中常用函数
- Cocos2d-X中的节点类CCNode
- cocos2d-x之节点类CCNode
- Cocos2d-x 节点类(CCNode)
- C语言:链表的逆序,两种思考方法,第一种用rev_1()实现,第二种用rev_2( )实现.
- [Unity 3D] Quaternion.LookRotation
- 链队的创建、入队、出队
- 请问java.util.ConcurrentModificationException怎么解决啊
- c++静态库与动态库的区别
- Cocos2D-x权威指南: CCNode类方法:
- 使用httpclient无需证书调用https的示例(java调用https)
- dll 导出函数名的那些事
- NS3之first.cc注解
- Servlet 中文乱码问题及解决方案剖析
- This Android SDK requires Android Developer Toolkit version 22.6.3 or above. Current version is 22.3
- 苹果iPad Air:史诗再度上演
- 【12】设计一个不能被继承的类
- 得经常去的博客地址(持续补充)