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)
设置精灵自身的锚点。