zoukankan      html  css  js  c++  java
  • cocos2dx进阶学习之CCSprite

    继承关系

    CCSprite -> CCNodeRGBA       ->   CCNode, CCRGBAProtocol

                          CCTextureProtocol

    从继承关系可以看出,CCSprite也是一个CCNode的子类,在cocos2dx中,CCSprite抽象了舞台中的角色对象,类似舞台中的舞者,或者舞台中的某一个道具。


    成员函数

    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);

    创建函数,精灵一般需要一个纹理图片作为其参数,也有些函数有矩形,表示只需要用一部分纹理作为精灵



    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);

    virtual void setAnchorPoint(const CCPoint& anchor);

    virtual void ignoreAnchorPointForPosition(bool value);

    virtual void setVisible(bool bVisible);

    virtual void draw(void);

    virtual void updateTransform(void);

    以上接口时重载CCNode,这里不再赘述


    virtual void setColor(const ccColor3B& color3);

    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);

    以上接口来自CCNodeRGBA,这里不再赘述


    virtual CCSpriteBatchNode* getBatchNode(void);

    virtual void setBatchNode(CCSpriteBatchNode *pobSpriteBatchNode); 

    设置CCSpriteBatchNode,但是建议用get接口,不建议用set接口


    virtual void setTextureRect(const CCRect& rect);

    virtual void setTextureRect(const CCRect& rect, bool rotated, const CCSize& untrimmedSize);

    inline const CCRect& getTextureRect(void) { return m_obRect; }

    设置纹理的矩形,来改变精灵


    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; }

    dirty表明精灵需要更新


    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 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);

    设置翻转



  • 相关阅读:
    2017年上海金马五校程序设计竞赛:Problem C : Count the Number (模拟)
    2017年上海金马五校程序设计竞赛:Problem B : Sailing (广搜)
    2017年上海金马五校程序设计竞赛:Problem A : STEED Cards (STL全排列函数)
    之江学院第0届校赛 qwb去面试 (找规律)
    [leetcode-41-First Missing Positive]
    [leetcode-625-Minimum Factorization]
    [leetcode-623-Add One Row to Tree]
    [leetcode-624-Maximum Distance in Arrays]
    [leetcode-95-Unique Binary Search Trees II]
    [leetcode-96-Unique Binary Search Trees]
  • 原文地址:https://www.cnblogs.com/new0801/p/6177221.html
Copyright © 2011-2022 走看看