1、CCScene:很简单的场景类,继承自CCNode,大多数情况可继承他来构造场景
class CC_DLL CCScene : public CCNode{public: CCScene(); virtual ~CCScene(); bool init(); //初始化 static CCScene *create(voID); //创建场景};2、CCSprite(精灵):继承自CCNodeRGBA,CCTextureProtocol,另外还可以根据需要继承CCGLBufferednode
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);
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;};3、CCTextureProtocol:纹理(协议)底层处理类,继承自CCBlendProtocol,很简单,只有两个函数,设置和获得纹理对象
class CC_DLL CCTextureProtocol : public CCBlendProtocol{public: virtual CCTexture2D* getTexture(voID) = 0; virtual voID setTexture(CCTexture2D *texture) = 0;};4、CCBlendProtocol:混合(协议)底层接口类,很简单,两函数分别是设置和获得混合对象
class CC_DLL CCBlendProtocol{public: virtual voID setBlendFunc(ccBlendFunc blendFunc) = 0; virtual ccBlendFunc getBlendFunc(voID) = 0;};5、CCGLBufferednode:openGL缓冲节点类
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];};总结
以上是内存溢出为你收集整理的Cocos2d-x结构学习(六)CCScene、CCSprite、CCTextureProtocol、CCBlendProtocol、CCGLBufferedNode全部内容,希望文章能够帮你解决Cocos2d-x结构学习(六)CCScene、CCSprite、CCTextureProtocol、CCBlendProtocol、CCGLBufferedNode所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)