x结构学习(二)CCNode、CCNodeRGBA、CCRGBAProtocol

1、CCNode类:继承自CCObject类

class CC_DLL CCNode : public CCObject{public:CCNode(void);virtual ~CCNode(void);virtual bool init();//初始化static CCNode * create(void);//创建一个节点,返回创建节点的指针const char* description(void);//得到一个关于调试信息的字符串,,以'\0'结尾virtual void setZOrder(int zOrder);//下面3个函数和X序相关virtual void _setZOrder(int z);virtual int getZOrder();virtual void setVertexZ(float vertexZ); //openGL中Z坐标virtual float getVertexZ();virtual void setScaleX(float fScaleX); //x坐标的缩放比例virtual float getScaleX();virtual void setScaleY(float fScaleY);//y<span style="font-family: Arial, Helvetica, sans-serif;">坐标的缩放比例</span>virtual float getScaleY();virtual void setScale(float scale);//同时改变x、y缩放,1.0f默认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); //x方向歪斜角度virtual float getSkewX();virtual void setSkewY(float fSkewY); <span style="font-family: Arial, Helvetica, sans-serif;">//y方向歪斜角度</span>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);virtual float getRotationX();virtual void setRotationY(float fRotationY);virtual float getRotationY();virtual void setOrderOfArrival(unsigned int uOrderOfArrival);virtual unsigned int getOrderOfArrival();virtual void setGLServerState(ccGLServerState glServerState); //GL服务状态相关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 CCNode * getChildByTag(int tag);//获得孩子节点virtual CCArray* getChildren();virtual unsigned int getChildrenCount(void) const;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);virtual void removeChildByTag(int tag, bool cleanup);virtual void removeAllChildren();virtual void removeAllChildrenWithCleanup(bool cleanup);virtual void reorderChild(CCNode * child, int zOrder); //根据新的Z序重置节点virtual void sortAllChildren();//排序所有节点virtual CCGridBase* getGrid();//网格对象virtual void setGrid(CCGridBase *pGrid);virtual int getTag() const;//标签virtual void setTag(int nTag);virtual void* getUserData();//用户自定义数据virtual void setUserData(void *pUserData);virtual CCObject* getUserObject();virtual void setUserObject(CCObject *pUserObject);virtual CCGLProgram* getShaderProgram();//openGL着色器相关virtual void setShaderProgram(CCGLProgram *pShaderProgram);virtual CCCamera* getCamera();//获得摄像机virtual bool isRunning();//判断是否运行virtual void registerScriptHandler(int handler);//脚本处理例程相关virtual void unregisterScriptHandler(void);inline int getScriptHandler() { return m_nScriptHandler; };void scheduleUpdateWithPriorityLua(int nHandler, int priority);//LUA优先调度更新virtual void onEnter();//渲染virtual void onEnterTransitionDidFinish();//进入退出virtual void onExit();virtual void onExitTransitionDidStart();virtual void cleanup(void);//清理virtual void draw(void);//绘制virtual void visit(void);//访问virtual CCRect boundingBox(void);//包围盒virtual void setActionManager(CCActionManager* actionManager); //动作、动作管理相关virtual CCActionManager* getActionManager();CCAction* runAction(CCAction* action);void stopAllActions(void);void stopAction(CCAction* action);void stopActionByTag(int tag);CCAction* getActionByTag(int tag);unsigned int numberOfRunningActions(void);virtual void setScheduler(CCScheduler* scheduler);//调度相关virtual CCScheduler* getScheduler();bool isScheduled(SEL_SCHEDULE selector);void scheduleUpdate(void);void scheduleUpdateWithPriority(int 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);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); <span style="font-family: Arial, Helvetica, sans-serif;">void setAdditionalTransform(const CCAffineTransform& additionalTransform);</span><span style="font-family:Arial, Helvetica, sans-serif;"></span> CCComponent* getComponent(const char *pName) const;//组件virtual bool addComponent(CCComponent *pComponent);virtual bool removeComponent(const char *pName);virtual void removeAllComponents();void childrenAlloc(void);//孩子节点处理void insertChild(CCNode* child, int z);void detachChild(CCNode *child, bool doCleanup);CCPoint convertToWindowSpace(const CCPoint& nodePoint);protected:float m_fRotationX;float m_fRotationY;float m_fScaleX;float m_fScaleY;float m_fVertexZ;CCPoint m_obPosition;float m_fSkewX;float m_fSkewY;CCPoint m_obAnchorPointInPoints;CCPoint m_obAnchorPoint;CCSize m_obContentSize;CCAffineTransform m_sAdditionalTransform;CCAffineTransform m_sTransform;CCAffineTransform m_sInverse;CCCamera *m_pCamera;CCGridBase *m_pGrid;int m_nZOrder;CCArray *m_pChildren;CCNode *m_pParent;int m_nTag;void *m_pUserData;CCObject *m_pUserObject;CCGLProgram *m_pShaderProgram;ccGLServerState m_eGLServerState;unsigned int m_uOrderOfArrival;CCScheduler *m_pScheduler;CCActionManager *m_pActionManager;bool m_bRunning;bool m_bTransformDirty;bool m_bInverseDirty;bool m_bAdditionalTransformDirty;bool m_bVisible;bool m_bIgnoreAnchorPointForPosition;bool m_bReorderChildDirty;int m_nScriptHandler;int m_nUpdateScriptHandler;ccScriptType m_eScriptType;CCComponentContainer *m_pComponentContainer;};2、<span style="font-family: Arial, Helvetica, sans-serif;">CCNodeRGBA</span>类:继承自CCNode类和CCRGBProtocol类<pre name="code" class="cpp">class CC_DLL CCNodeRGBA : public CCNode, public CCRGBAProtocol{public:CCNodeRGBA();virtual ~CCNodeRGBA();virtual bool init();//初始化static CCNodeRGBA * create(void);//创建virtual GLubyte getOpacity();virtual GLubyte getDisplayedOpacity();virtual void setOpacity(GLubyte opacity);virtual void updateDisplayedOpacity(GLubyte parentOpacity);virtual bool isCascadeOpacityEnabled();virtual void setCascadeOpacityEnabled(bool cascadeOpacityEnabled);virtual const ccColor3B& getColor(void);virtual const ccColor3B& getDisplayedColor();virtual void setColor(const ccColor3B& color);virtual void updateDisplayedColor(const ccColor3B& parentColor);virtual bool isCascadeColorEnabled();virtual void setCascadeColorEnabled(bool cascadeColorEnabled);virtual void setOpacityModifyRGB(bool bValue) {CC_UNUSED_PARAM(bValue);};virtual bool isOpacityModifyRGB() { return false; };protected:GLubyte_displayedOpacity;GLubyte_realOpacity;ccColor3B_displayedColor;ccColor3B _realColor;bool_cascadeColorEnabled;bool_cascadeOpacityEnabled;};一定要成为你工作最大的资产。

x结构学习(二)CCNode、CCNodeRGBA、CCRGBAProtocol

相关文章:

你感兴趣的文章:

标签云: