现在的位置: 首页 > 综合 > 正文

cocos2d-X 节点(CCSpriteFrame.h..)API

2014年02月11日 ⁄ 综合 ⁄ 共 3304字 ⁄ 字号 评论关闭

本文来自http://blog.csdn.net/runaying ,引用必须注明出处!

cocos2d-X 节点(CCSpriteFrame.h..)API

温馨提醒:为了大家能更好学习,强烈推荐大家看看本人的这篇博客 Cocos2d-X权威指南笔记
///cocos2d-x-3.0alpha0/cocos2dx/sprite_nodes


#ifndef __SPRITE_CCSPRITE_FRAME_H__
#define __SPRITE_CCSPRITE_FRAME_H__

#include "base_nodes/CCNode.h"
#include "CCProtocols.h"
#include "cocoa/CCObject.h"
#include "cocoa/CCGeometry.h"

NS_CC_BEGIN

class Texture2D;

/**
 * @addtogroup sprite_nodes
 * @{
 */

/** @brief 一个 SpriteFrame 有:
    - texture: Sprite 将使用的 Texture2D
    - rectangle: texture 的尺寸


 你可以修改框架做一些其他的事情:
 
    SpriteFrame *frame = SpriteFrame::frameWithTexture(texture, rect, offset);
    sprite->setDisplayFrame(frame);
 */
class CC_DLL SpriteFrame : public Object, public Clonable
{
public:

    /** 使用 filname 、rect 创建一个 SpriteFrame
     假定 frame 没有被修改
     */
    static SpriteFrame* create(const char* filename, const Rect& rect);
    
    /** 使用 filname 、rect、rotated(旋转)、offset、originalSize(原始大小) 创建一个 
      originalSize 是 frame 被修改前的尺寸(以像素为单位)
     */
    static SpriteFrame* create(const char* filename, const Rect& rect, bool rotated, const Point& offset, const Size& originalSize);
    
    /** 使用 texture 和 rect 创建一个 SpriteFrame
    假定 frame 没有被修改
     */
    static SpriteFrame* createWithTexture(Texture2D* pobTexture, const Rect& rect);

    /** 使用 texture, rect, rotated, offset 、 originalSize 创建一个 SpriteFrame
     originalSize 是 frame 被修改前的尺寸(以像素为单位)
     */
    static SpriteFrame* createWithTexture(Texture2D* pobTexture, const Rect& rect, bool rotated, const Point& offset, const Size& originalSize);
    /**
     * @js NA
     * @lua NA
     */
    virtual ~SpriteFrame(void);

    /** 使用 texture 和 rect 初始化一个 SpriteFrame
     假定 frame 没有被修改
     */
    bool initWithTexture(Texture2D* pobTexture, const Rect& rect);

    /** 使用 filname 、rect 初始化一个 SpriteFrame
     假定 frame 没有被修改
     */
    bool initWithTextureFilename(const char* filename, const Rect& rect);

    /** 使用 texture, rect, rotated, offset 、 originalSize 初始化一个 SpriteFrame
     originalSize 是 frame 被修改前的尺寸(以像素为单位)
    */
    bool initWithTexture(Texture2D* pobTexture, const Rect& rect, bool rotated, const Point& offset, const Size& originalSize);

    /** 使用 filname 、rect、rotated(旋转)、offset、originalSize(原始大小) 初始化一个
     originalSize 是 frame 被修改前的尺寸(以像素为单位)

     @since v1.1
     */
    bool initWithTextureFilename(const char* filename, const Rect& rect, bool rotated, const Point& offset, const Size& originalSize);


    // 属性
    inline const Rect& getRectInPixels() const { return _rectInPixels; }
    void setRectInPixels(const Rect& rectInPixels);

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

    /** get frame 的尺寸(矩形)*/
    inline const Rect& getRect(void) const { return _rect; }
    /** set frame 的尺寸(矩形) */
    void setRect(const Rect& rect);

    /** get frame 的 offset  */
    const Point& getOffsetInPixels(void) const;
    /** set frame 的 offset  */
    void setOffsetInPixels(const Point& offsetInPixels);

    /** get 图像裁剪后的原始大小 */
    inline const Size& getOriginalSizeInPixels(void) const { return _originalSizeInPixels; }
    /** set 图像裁剪后的原始大小*/
    inline void setOriginalSizeInPixels(const Size& sizeInPixels) { _originalSizeInPixels = sizeInPixels; }

    /** get 图像裁剪后的原始大小 */
    inline const Size& getOriginalSize(void) const { return _originalSize; }
    /** set 图像裁剪后的原始大小 */
    inline void setOriginalSize(const Size& sizeInPixels) { _originalSize = sizeInPixels; }

    /** get frame 的 texture */
    Texture2D* getTexture(void);
    /** set frame拥有 的 texture */
    void setTexture(Texture2D* pobTexture);

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

    // Overrides
	virtual SpriteFrame *clone() const override;

protected:
    Point _offset;
    Size _originalSize;
    Rect _rectInPixels;
    bool   _rotated;
    Rect _rect;
    Point _offsetInPixels;
    Size _originalSizeInPixels;
    Texture2D *_texture;
    std::string  _textureFilename;
};

// end of sprite_nodes group
/// @}

NS_CC_END

#endif //__SPRITE_CCSPRITE_FRAME_H__

抱歉!评论已关闭.