CCSprite 是一個2d的圖像,
#incude<CCSprite.h>
CCSprite類的繼承圖表如下:
詳細成員列表參見:http://www.cocos2d-x.org/embedded/cocos2d-x/d4/de7/classcocos2d_1_1_c_c_sprite.html
詳細描述:
CCSprite是個2D的圖像。
CCSprite可以用圖形或者圖像的一部分記性創建。
如果其父親或者任何祖先是CCSpriteBathNode,那麼他將有以下特性或限制。
特性(當其父類爲CCBatchNode):
當CCSpriteBathNode包含很多孩子的時候,顯示速度特別快。所有的孩子將一次繪製。
限制:
不再支持相機了,如CCOrbitCamera的行爲就不能工作。
不再支持GridBase行爲,如CCLens,CCRipple,CCTwirl
不能單獨的設置aliased 屬性,因爲Alias和Antialias 屬性屬於CCSPriteBathNode。
不能單獨的設置Blending 函數,因爲Blending 函數屬於CCSPriteBathNode。
不支持垂直滾動條,但可以被模擬爲一個代理精靈
如果其父類是標準的CCNode,那麼CCSprite行爲則具備所有CCNode的行爲。
支持blending 函數
支持aliasing 和antialiasing
但是顯示將會變慢,因爲每次只繪製一個孩子。
CCSprite默認的錨點是(0.5,0.5)
一些函數的介紹:
virtual void addChild(CCNode * child);
添加一個孩子到容器中,z-order 爲0
如過孩子添加到正在運行的節點,那麼OnEnter 和OnEnterTransitionDidFinish 將會立刻執行。
V0.7.1以上纔有該函數,繼承自CCNode
virtual void addChild(CCNode * child,int zOrder);
添加一個孩子到容器中,並設置z-order 。其他功能同addChild函數
virtual void draw (void)
重寫這個方法用來繪製自己的節點
如下GL_states將默認能使用
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_COLOR_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glEnable(GL_TEXTURE_2D);
並且你不能禁用他們,直到你繪製完你的節點。
bool initWithFile(const char * pszFileName)
用圖像的文件名來初始化一個sprite,大小爲圖像的大小,偏移爲(0,0)
bool initWithFile(const char * pszFileName,const CCRect &rect)
用圖像的文件名 和大小來初始化一個sprite,偏移爲(0,0)
bool initWithtexture(CCTexture2D * pTexture)
用文本初始化一個sprite,sprite的大小爲文本的大小,偏移爲(0,0)
bool initWithTexture(CCTexture2D *pTexture,const CCRect & rect)
用文本和大小初始化一個sprite,偏移爲(0,0)
bool isDirty(void)[inline]
檢測這個sprite是否需要進行更新。
virtual void removeAllChildrenWithCleanup(bool cheanup)
從容器中移除所有的孩子,並根據cleanup參數進行清除正在運行的所有行爲。
virtual void removeChild(CCNode *child,bool cleanup)
從容器中移除指定的孩子,並根據cleanup參數進行清除正在運行的所有行爲。
virtual void reorderChild(CCNode *child,int zOrder)
根據zOrder進行重新定義一個孩子。前提孩子必須是已經添加的。
virtual void setAnchorPoint(const CCPoint & var)
設置精靈自身的錨點。