Cocos2d-x结构学习(二)CCNode、CCNodeRGBA、CCRGBAProtocol
来源:互联网 发布:中国古代 知乎 编辑:程序博客网 时间:2024/05/20 21:45
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;};
</pre>3、CCRGBAProtocol类:</p><p><pre name="code" class="cpp">class CC_DLL CCRGBAProtocol{public: virtual void setColor(const ccColor3B& color) = 0; virtual const ccColor3B& getColor(void) = 0; virtual const ccColor3B& getDisplayedColor(void) = 0; virtual GLubyte getDisplayedOpacity(void) = 0; virtual GLubyte getOpacity(void) = 0; virtual void setOpacity(GLubyte opacity) = 0; virtual void setOpacityModifyRGB(bool bValue) = 0; virtual bool isOpacityModifyRGB(void) = 0; virtual bool isCascadeColorEnabled(void) = 0; virtual void setCascadeColorEnabled(bool cascadeColorEnabled) = 0; virtual void updateDisplayedColor(const ccColor3B& color) = 0; virtual void updateDisplayedOpacity(GLubyte opacity) = 0;};
0 0
- Cocos2d-x结构学习(二)CCNode、CCNodeRGBA、CCRGBAProtocol
- cocos2d-x学习笔记-CCNode
- cocos2d-x学习笔记-CCNode
- cocos2d-x API学习---CCNode
- cocos2d-x学习笔记-CCNode
- Cocos2d-x学习(二十一):cocos2d-x引擎结构
- Cocos2d-x学习(二十一):cocos2d-x引擎结构
- Cocos2d-x学习(二十一):cocos2d-x引擎结构
- Cocos2d-x学习笔记(三)CCNode分析
- Cocos2d-x学习笔记(三)CCNode分析
- cocos2d-x 3.0学习之CCNode详解
- cocos2d-X 节点(CCNode.h)API
- Cocos2d-x 节点类(CCNode)
- cocos2d-x基础(一)CCNode
- cocos2d-x CCNode类
- Cocos2d-x基础:CCNode
- 4.cocos2d-x CCNode
- 【Cocos2d-x】CCNode
- 机械硬盘的延时
- Github上比较优秀的Android项目
- cocos2d-x 物理引擎
- 你好,机器人!终于即将进入属于你的时代!(上)
- JQUERY的基础学习
- Cocos2d-x结构学习(二)CCNode、CCNodeRGBA、CCRGBAProtocol
- EBS Form: 有tab和无tab 的Foder Form 开发
- IOS-SQLite数据库操作
- 你好,机器人!终于即将进入属于你的时代!(中)
- 学驾照 持续更新中。。。
- DOS命令大全--详解
- Java_File类
- GCD
- 什么是Hadoop?