加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

《不靠谱2.x》006.CCSprite(上)003 CCSpriteFrame

发布时间:2020-12-14 21:41:09 所属栏目:百科 来源:网络整理
导读:一、概述 CCSpriteFrame继承自CCObject。看了源码后感觉和CCTexture2D一样,不常直接使用、更多作为中间变量。源码如下: class CC_DLL CCSpriteFrame : public CCObject{ public : // attributes inline const CCRect getRectInPixels ( void ) { return m_

一、概述
CCSpriteFrame继承自CCObject。看了源码后感觉和CCTexture2D一样,不常直接使用、更多作为中间变量。源码如下:

class CC_DLL CCSpriteFrame : public CCObject
{
public:
    // attributes

    inline const CCRect& getRectInPixels(void) { return m_obRectInPixels; }
    void setRectInPixels(const CCRect& rectInPixels);

    inline bool isRotated(void) { return m_bRotated; }
    inline void setRotated(bool bRotated) { m_bRotated = bRotated; }

    /** get rect of the frame */
    inline const CCRect& getRect(void) { return m_obRect; }
    /** set rect of the frame */
    void setRect(const CCRect& rect);

    /** get offset of the frame */
    const CCPoint& getOffsetInPixels(void);
    /** set offset of the frame */
    void setOffsetInPixels(const CCPoint& offsetInPixels);

    /** get original size of the trimmed image */
    inline const CCSize& getOriginalSizeInPixels(void) { return m_obOriginalSizeInPixels; }
    /** set original size of the trimmed image */
    inline void setOriginalSizeInPixels(const CCSize& sizeInPixels) { m_obOriginalSizeInPixels = sizeInPixels; }

    /** get original size of the trimmed image */
    inline const CCSize& getOriginalSize(void) { return m_obOriginalSize; }
    /** set original size of the trimmed image */
    inline void setOriginalSize(const CCSize& sizeInPixels) { m_obOriginalSize = sizeInPixels; }

    /** get texture of the frame */
    CCTexture2D* getTexture(void);
    /** set texture of the frame,the texture is retained */
    void setTexture(CCTexture2D* pobTexture);

    const CCPoint& getOffset(void);
    void setOffset(const CCPoint& offsets);

public:
    /**
     *  @js NA
     *  @lua NA
     */
    ~CCSpriteFrame(void);
    /** *  @js NA *  @lua NA */
    virtual CCObject* copyWithZone(CCZone *pZone);

    /** Create a CCSpriteFrame with a texture filename,rect in points. It is assumed that the frame was not trimmed. */
    static CCSpriteFrame* create(const char* filename,const CCRect& rect);

    /** Create a CCSpriteFrame with a texture filename,rect,rotated,offset and originalSize in pixels. The originalSize is the size in pixels of the frame before being trimmed. */
    static CCSpriteFrame* create(const char* filename,const CCRect& rect,bool rotated,const CCPoint& offset,const CCSize& originalSize);

    /** Create a CCSpriteFrame with a texture,rect in points. It is assumed that the frame was not trimmed. */
    static CCSpriteFrame* createWithTexture(CCTexture2D* pobTexture,const CCRect& rect);

    /** Create a CCSpriteFrame with a texture,offset and originalSize in pixels. The originalSize is the size in points of the frame before being trimmed. */
    static CCSpriteFrame* createWithTexture(CCTexture2D* pobTexture,const CCSize& originalSize);

public:
    /** Initializes a CCSpriteFrame with a texture,rect in points.
     It is assumed that the frame was not trimmed.
     */
    bool initWithTexture(CCTexture2D* pobTexture,const CCRect& rect);

    /** Initializes a CCSpriteFrame with a texture filename,rect in points; It is assumed that the frame was not trimmed. */
    bool initWithTextureFilename(const char* filename,const CCRect& rect);

    /** Initializes a CCSpriteFrame with a texture,offset and originalSize in pixels. The originalSize is the size in points of the frame before being trimmed. */
    bool initWithTexture(CCTexture2D* pobTexture,const CCSize& originalSize);

    /** Initializes a CCSpriteFrame with a texture,offset and originalSize in pixels. The originalSize is the size in pixels of the frame before being trimmed.  @since v1.1 */
    bool initWithTextureFilename(const char* filename,const CCSize& originalSize);


protected:
    CCPoint m_obOffset;
    CCSize m_obOriginalSize;
    CCRect m_obRectInPixels;
    bool   m_bRotated;
    CCRect m_obRect;
    CCPoint m_obOffsetInPixels;
    CCSize m_obOriginalSizeInPixels;
    CCTexture2D *m_pobTexture;
    std::string  m_strTextureFilename;
};

二、分析
1、CCSpriteFrame可通过:文件名、纹理、纹理文件名(不知道和前面的文件名有什么区别)生成
2、可以获取或设置这些属性的值:角度以及是否有角度偏转、矩形、大小、2D纹理、偏移

三、总结 1、可通过文件名、纹理、纹理文件名生成CCSpriteFrame对象 2、不常直接使用,更多的作为中间变量

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读