CCSprite是一副2D圖像,CCSprite可以通過圖像或者圖像中的一個矩形子區域創建 如果它的父節點或者任意繼承樹上的節點是CCspriteBatchNode則具有下述特性:
父節點是CCSpriteBatchNode時具有的特性: 更快的渲染速度,特別時CCSpriteBatchNode有很多子節點的情況下,但有以下限制:
A、不支持照相功能(例如:CCOrbitCamera動作不能執行)
B、不支持基於網格的動作(例如:CCLens,CCRipple,CCTwirl)
C、Alias / Antialias屬性屬於CCSpriteBatchNode,所以你不能單獨設置aliase屬性
D、渲染函數屬性屬於CCSpriteBatchNode,所以你不能單獨設置渲染函數屬性
E、不支持視差滾動,但是可以通過“代理”精靈模擬 如果它的父節點時普通CCNode,那么CCSprite具有和其它任何CCNode一樣的行為。
雖然有以上限制,但它也有以下優點:
A、支持渲染(Blending)功能
B、支持Alias / Antialias • 但是渲染速度會比較慢,每次只渲染一個子節點 CCSprite默認的錨點時(0.5, 0.5)
可以說,所有與圖片有關系的,都可以用這個來處理,主要是提供圖片的加載展示,可以加載序列幀,以便動畫播放
類繼承圖
其主要函數除了CCNode繼承下來的函數外,還有以下函數:
virtual void setTexture (CCTexture2D *texture)//設置精靈的紋理
virtual CCTexture2D * getTexture (void)//獲取精靈的紋理
bool initWithTexture (CCTexture2D *pTexture)//根據紋理初始化精靈
bool initWithTexture (CCTexture2D *pTexture, const CCRect &rect)//根據紋理指定的區域初始化精靈
bool initWithSpriteFrame (CCSpriteFrame *pSpriteFrame)//根據SpriteFrame初始化精靈
bool initWithSpriteFrameName (const char *pszSpriteFrameName)//根據spriteFrame的名稱初始化精靈
bool initWithFile (const char *pszFilename)//根據plist文件初始化精靈
bool initWithFile (const char *pszFilename, const CCRect &rect)//根據plist文件初始化精靈
bool initWithBatchNode (CCSpriteBatchNode *batchNode, const CCRect &rect)//批量根據節點初始化精靈
void setDisplayFrameWithAnimationName (const char *animationName, int frameIndex)
static CCSprite * spriteWithTexture (CCTexture2D *pTexture) //根據紋理生成精靈
static CCSprite * spriteWithTexture (CCTexture2D *pTexture, const CCRect &rect)//根據紋理指定的區域生成精靈
static CCSprite * spriteWithTexture (CCTexture2D *pTexture, const CCRect &rect, const CCPoint &offset)//根據紋理指定的區域和點偏移生成精靈
static CCSprite * spriteWithSpriteFrame (CCSpriteFrame *pSpriteFrame)//根據SpriteFrame生成精靈
static CCSprite * spriteWithSpriteFrameName (const char *pszSpriteFrameName)//根據SpriteFrame的名稱生成精靈
static CCSprite * spriteWithFile (const char *pszFileName)//根據plist文件按生成CCSprite
static CCSprite * spriteWithFile (const char *pszFileName, const CCRect &rect)//根據plist文件生成精靈
static CCSprite * spriteWithBatchNode (CCSpriteBatchNode *batchNode, const CCRect &rect)//根據節點批量生成精靈