1、CCScene:很简单的场景类,继承自CCNode,大多数情况可继承他来构造场景
2、CCSprite(精灵):继承自CCNodeRGBA,CCTextureProtocol,另外还可以根据需要继承CCGLBufferedNode
- class CC_DLL CCScene : public CCNode
- {
- public:
- CCScene();
- virtual ~CCScene();
- bool init(); //初始化
- static CCScene *create(void); //创建场景
- };
- class CC_DLL CCSprite : public CCNodeRGBA,public CCTextureProtocol
- #ifdef EMSCRIPTEN,public CCGLBufferedNode
- #endif
- {
- public:
- static CCSprite* create(); //多种方法创建一个精灵
- static CCSprite* create(const char *pszFileName);
- static CCSprite* create(const char *pszFileName,const CCRect& rect);
- static CCSprite* createWithTexture(CCTexture2D *pTexture);
- static CCSprite* createWithTexture(CCTexture2D *pTexture,const CCRect& rect);
- static CCSprite* createWithSpriteFrame(CCSpriteFrame *pSpriteFrame);
- static CCSprite* createWithSpriteFrameName(const char *pszSpriteFrameName);
- CCSprite(void);
- virtual ~CCSprite(void);
3、CCTextureProtocol:纹理(协议)底层处理类,继承自CCBlendProtocol,很简单,只有两个函数,设置和获得纹理对象
- virtual bool init(void); //多种方法初始化
- virtual bool initWithTexture(CCTexture2D *pTexture);
- virtual bool initWithTexture(CCTexture2D *pTexture,const CCRect& rect);
- virtual bool initWithTexture(CCTexture2D *pTexture,const CCRect& rect,bool rotated);
- virtual bool initWithSpriteFrame(CCSpriteFrame *pSpriteFrame);
- virtual bool initWithSpriteFrameName(const char *pszSpriteFrameName);
- virtual bool initWithFile(const char *pszFilename);
- virtual bool initWithFile(const char *pszFilename,const CCRect& rect);
- inline ccBlendFunc getBlendFunc(void) { return m_sBlendFunc; } //得到混合函数
- virtual void setPosition(const CCPoint& pos); //几个位置相关函数
- virtual void setRotation(float fRotation);
- virtual void setRotationX(float fRotationX);
- virtual void setRotationY(float fRotationY);
- virtual void setSkewX(float sx);
- virtual void setSkewY(float sy);
- virtual void removeChild(CCNode* pChild,bool bCleanup); //几个孩子节点相关函数
- virtual void removeAllChildrenWithCleanup(bool bCleanup);
- virtual void reorderChild(CCNode *pChild,int zOrder);
- virtual void addChild(CCNode *pChild);
- virtual void addChild(CCNode *pChild,int zOrder);
- virtual void addChild(CCNode *pChild,int zOrder,int tag);
- virtual void sortAllChildren();
- virtual void setScale(float fScale); //设置缩放比例
- virtual void setVertexZ(float fVertexZ); //设置Z坐标
- virtual void setAnchorPoint(const CCPoint& anchor); //两个锚点相关函数
- virtual void ignoreAnchorPointForPosition(bool value);
- virtual void setVisible(bool bVisible); //设置是否可见
- virtual void draw(void); //绘制
- virtual void setColor(const ccColor3B& color3); //几个RGB颜色相关和显示相关函数
- virtual void updateDisplayedColor(const ccColor3B& parentColor);
- virtual void setOpacity(GLubyte opacity);
- virtual void setOpacityModifyRGB(bool modify);
- virtual bool isOpacityModifyRGB(void);
- virtual void updateDisplayedOpacity(GLubyte parentOpacity);
- virtual void updateTransform(void); //更新变换(旋转,缩放,平移)
- virtual CCSpriteBatchNode* getBatchNode(void); //获得和设置批处理节点对象
- virtual void setBatchNode(CCSpriteBatchNode *pobSpriteBatchNode);
- virtual void setTextureRect(const CCRect& rect); //几个矩形设置相关函数
- virtual void setTextureRect(const CCRect& rect,bool rotated,const CCSize& untrimmedSize);
- virtual void setVertexRect(const CCRect& rect);
- virtual void setDisplayFrame(CCSpriteFrame *pNewFrame); //帧及动画相关函数
- virtual bool isFrameDisplayed(CCSpriteFrame *pFrame);
- virtual CCSpriteFrame* displayFrame(void);
- virtual void setDisplayFrameWithAnimationName(const char *animationName,int frameIndex);
- inline virtual bool isDirty(void) { return m_bDirty; } //淡入淡出
- inline virtual void setDirty(bool bDirty) { m_bDirty = bDirty; }
- inline ccV3F_C4B_T2F_Quad getQuad(void) { return m_sQuad; }
- inline bool isTextureRectRotated(void) { return m_bRectRotated; }
- inline unsigned int getAtlasIndex(void) { return m_uAtlasIndex; }
- inline void setAtlasIndex(unsigned int uAtlasIndex) { m_uAtlasIndex = uAtlasIndex; }
- inline const CCRect& getTextureRect(void) { return m_obRect; } //获得纹理矩形
- inline CCTextureAtlas* getTextureAtlas(void) { return m_pobTextureAtlas; }
- inline void setTextureAtlas(CCTextureAtlas *pobTextureAtlas) { m_pobTextureAtlas = pobTextureAtlas; }
- inline const CCPoint& getOffsetPosition(void) { return m_obOffsetPosition; } //设置偏移位置
- bool isFlipX(void); //翻转相关的函数
- void setFlipX(bool bFlipX);
- bool isFlipY(void);
- void setFlipY(bool bFlipY);
- protected:
- void updateColor(void);
- virtual void setTextureCoords(CCRect rect);
- virtual void updateBlendFunc(void);
- virtual void setReorderChildDirtyRecursively(void);
- virtual void setDirtyRecursively(bool bValue);
- CCTextureAtlas* m_pobTextureAtlas;
- unsigned int m_uAtlasIndex;
- CCSpriteBatchNode* m_pobBatchNode;
- bool m_bDirty;
- bool m_bRecursiveDirty;
- bool m_bHasChildren;
- bool m_bShouldBeHidden;
- CCAffineTransform m_transformToBatch;
- ccBlendFunc m_sBlendFunc;
- CCTexture2D* m_pobTexture;
- CCRect m_obRect;
- bool m_bRectRotated;
- CCPoint m_obOffsetPosition;
- CCPoint m_obUnflippedOffsetPositionFromCenter;
- ccV3F_C4B_T2F_Quad m_sQuad;
- bool m_bOpacityModifyRGB;
- bool m_bFlipX;
- bool m_bFlipY;
- };
4、CCBlendProtocol:混合(协议)底层接口类,很简单,两函数分别是设置和获得混合对象
- class CC_DLL CCTextureProtocol : public CCBlendProtocol
- {
- public:
- virtual CCTexture2D* getTexture(void) = 0;
- virtual void setTexture(CCTexture2D *texture) = 0;
- };
5、CCGLBufferedNode:openGL缓冲节点类
- class CC_DLL CCBlendProtocol
- {
- public:
- virtual void setBlendFunc(ccBlendFunc blendFunc) = 0;
- virtual ccBlendFunc getBlendFunc(void) = 0;
- };
- class CCGLBufferedNode
- {
- public:
- CCGLBufferedNode(void);
- void setGLBufferData(void *buf,GLuint bufSize,int slot); //设置缓冲数据
- void setGLIndexData(void *buf,int slot);
- #define BUFFER_SLOTS 4
- GLuint m_bufferObject[BUFFER_SLOTS];
- GLuint m_bufferSize[BUFFER_SLOTS];
- GLuint m_indexBufferObject[BUFFER_SLOTS];
- GLuint m_indexBufferSize[BUFFER_SLOTS];
- };