cocos2d-x 学习笔记之CCNode
2014-06-17 14:51
519 查看
//继承关系 CCNode -> CCObject /*CCNode在cocos2dx中抽象舞台对象,需要渲染的对象都是从CCNode派生,包括CCScene,CCLayer,CCSprite等等 CCNode提供包容关系管理*/ //成员函数 virtual bool init(); static CCNode * create(void); //创建和初始化接口,create函数会自动调用autorelease virtual void setZOrder(int zOrder); virtual void _setZOrder(int z); virtual int getZOrder(); /*ZOrder相关设置,ZOrder是指在Z轴方向的顺序,指示对象的覆盖关系,其中_setZOrder只是改变本对象的成员函数,setZOrder除了改变本对象成员,还会调用父节点相关函数改变该对象在父对象中的位置*/ virtual void setVertexZ(float vertexZ); virtual float getVertexZ(); //设置OpenGZ的z向量,这个可能会破坏cocos2dx的ZOrder关系 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(); /*设置锚点,锚点是指设置点相对于自己的坐标点,这里anchorPoint是一个比例值,默认一般(0.5,0.5)*/ virtual void setContentSize(const CCSize& contentSize); virtual const CCSize& getContentSize() const; /*设置未转换的节点尺寸,所有的node都有尺寸,Scene和Layer的尺寸与屏幕相同*/ 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(); //设置旋转角度 virtual void setOrderOfArrival(unsigned int uOrderOfArrival); virtual unsigned int getOrderOfArrival(); /*设置arrival order,当两个node有相同的zorder时,按照arrival order次序来绘画*/ virtual void addChild(CCNode * child); virtual void addChild(CCNode * child, int zOrder); virtual void addChild(CCNode* child, int zOrder, int tag); //增加子节点,可以在增加子节点时,设定zOrder和tag CCNode * getChildByTag(int tag); virtual CCArray* getChildren(); virtual void setParent(CCNode* parent); unsigned int getChildrenCount(void) const; 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); 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; virtual void setTag(int nTag); //设置标签,每个node可以有一个标签,用于标示这个节点 virtual void* getUserData(); virtual void setUserData(void *pUserData); /*每个node可以设置void*的自定义数据,这个数据可以用来关联其他系统,比如物理系统对象*/ virtual CCObject* getUserObject(); virtual void setUserObject(CCObject *pUserObject); //设置关联的对象,和UserData类似,只是指针类型不同 virtual CCGLProgram* getShaderProgram(); virtual void setShaderProgram(CCGLProgram *pShaderProgram); //设置着色器 virtual CCCamera* getCamera(); //获取照相机对象 virtual bool isRunning(); /*是否在运行,运行的意思是节点接受事件回调函数,如OnEnter, OnExit, update等*/ virtual void registerScriptHandler(int handler); virtual void unregisterScriptHandler(void); inline int getScriptHandler() { return m_nScriptHandler; }; //注册lua函数处理OnEnter,OnExit void scheduleUpdateWithPriorityLua(int nHandler, int priority); //定时回调lua脚本函数 virtual void onEnter(); virtual void onEnterTransitionDidFinish(); virtual void onExit(); virtual void onExitTransitionDidStart(); /*进入和退出Scene的回调函数,onEnterTransitionDidFinish是在场景切换有动画时,动画结束后的回调,onExitTransitionDidStart类似*/ virtual void cleanup(void); //停止所有的schedule和actions virtual void draw(void); //绘制node virtual void visit(void); //绘制所有儿子节点 CCRect boundingBox(void); //获取节点矩形,该矩形的坐标基于父节点 virtual void setActionManager(CCActionManager* actionManager); virtual CCActionManager* getActionManager(); //设置Action管理器,动画管理器管理这个node的所有动画 CCAction* runAction(CCAction* action); /*让node执行动作,这个node也成了action的target,通过action->getTarget可以获取这个node 注意action并没有增加node的内存计数器*/ void stopAllActions(void); void stopAction(CCAction* action); void stopActionByTag(int tag); //停止action CCAction* getActionByTag(int tag); //获取action unsigned int numberOfRunningActions(void); //返回正在运行的action个数 virtual void setScheduler(CCScheduler* scheduler); virtual CCScheduler* getScheduler(); //设置调度器 bool isScheduled(SEL_SCHEDULE selector); //检查函数selector是否被调度 void scheduleUpdate(void); //调度update函数 void scheduleUpdateWithPriority(int priority); //有优先级的调度,priority越小,越先被调度 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); /*定时调度,delay是多少时间后,interval是两次调度之间间隔多少时间,repeat是重复次数*/ void resumeSchedulerAndActions(void); void pauseSchedulerAndActions(void); //调度的暂停和继续 virtual void update(float delta); //可重载的update函数 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); void setAdditionalTransform(const CCAffineTransform& additionalTransform); //OpenGL的矩阵坐标转换 CCPoint convertToNodeSpace(const CCPoint& worldPoint); CCPoint convertToWorldSpace(const CCPoint& nodePoint); CCPoint convertToNodeSpaceAR(const CCPoint& worldPoint); CCPoint convertToWorldSpaceAR(const CCPoint& nodePoint); /*坐标转换,从世界坐标转到本地坐标(节点坐标),AR结尾序列式转化时以锚点为原点*/ CCPoint convertTouchToNodeSpace(CCTouch * touch); CCPoint convertTouchToNodeSpaceAR(CCTouch * touch); //将CCTouch转换成节点坐标 CCComponent* getComponent(const char *pName) const; virtual bool addComponent(CCComponent *pComponent); virtual bool removeComponent(const char *pName); virtual void removeAllComponents(); //组件管理,类似userData,但是组件可以增加很多
原文链接:http://blog.csdn.net/itcastcpp/article/details/18700077#t1
相关文章推荐
- cocos2d学习笔记(六)CCParallaxNode和Tile Map
- cocos2d学习笔记(六)CCParallaxNode和Tile Map
- Cocos2d-x学习笔记(三)CCNode分析
- Cocos2d-x学习笔记(三)CCNode分析
- cocos2d-x学习笔记-SpriteBatchNode的优化原理
- cocos2d-x学习笔记-CCMenu和CCMenuItem详解
- IOS cocos2d学习笔记-<七>CCTransitionScene场景切换动画
- 【Cocos2d-X开发学习笔记】第19期:动作管理类(CCActionManager)的使用
- CCLayerColor和CCClippingNode组合新手引导功能---cocos2d-x学习之路[4]
- cocos2d-x CCAction动作学习笔记
- 【Cocos2d-X开发学习笔记】第19期:动作管理类(CCActionManager)的使用
- cocos2d-X学习之主要类介绍:节点CCNode
- Cocos2d-x学习笔记之CCScene、CCLayer、CCSprite的默认坐标和默认锚点实验
- Cocos2d-x学习笔记(七)CCAction原理分析
- cocos2d学习之CCNode
- cocos2d-x学习笔记-CCMenu和CCMenuItem详解
- 学习笔记之cocos2d-x2.1.1实现读取.plist文件(使用数组CCArray)
- 学习笔记之cocos2d-x2.1.1实现读取.plist文件(使用数组CCArray)
- cocos2d-x学习笔记3:CCTextFieldTTF的使用和再封装
- Cocos2d-X 学习笔记 20 利用CCSpriteBatchNode提高渲染效率