Texture是保存在GPU缓冲中的一张纹理。是由一张图片创建获得的。
SpriteFrame是Texture+Rect,根据一张纹理材质来剪切获得。
SpriteFrame *spFrame = SpriteFrame::createWithTexture(texture, rect);
createWithTexture函数的定义如下:
- SpriteFrame* SpriteFrame::createWithTexture(Texture2D *texture, const Rect& rect)
- {
- SpriteFrame *spriteFrame = new SpriteFrame();
- spriteFrame->initWithTexture(texture, rect);
- spriteFrame->autorelease();
- return spriteFrame;
- }
使用SpriteFrame 我们可以创建想要见到的Sprite。
Sprite *sp = Sprite::createWithSpriteFrame(spFrame);
这样就通过剪切的Texture创建出了我们想要的Sprite。
Sprite可以动态的改变它的spFrame,这样就形成了精灵帧。
sp->setDisplayFrame(spFrame2);
请看setDisplayFrame的定义:
- void setDisplayFrame(SpriteFrame *newFrame) { setSpriteFrame(newFrame); }
- void setSpriteFrame(SpriteFrame* frame)
- {
- CC_SAFE_RETAIN(frame);
- CC_SAFE_RELEASE(_spriteFrame);
- _spriteFrame = frame;
- }