您的位置:首页 > 移动开发 > Cocos引擎

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: