Cocos2d-x结构学习(六)CCScene、CCSprite、CCTextureProtocol、CCBlendProtocol、CCGLBufferedNode

Cocos2d-x结构学习(六)CCScene、CCSprite、CCTextureProtocol、CCBlendProtocol、CCGLBufferedNode,第1张

概述1、CCScene:很简单的场景类,继承自CCNode,大多数情况可继承他来构造场景 class CC_DLL CCScene : public CCNode{public: CCScene(); virtual ~CCScene(); bool init(); //初始化 static CCScene *cre

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所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1051419.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存