转载自:http://www.jb51.cc/article/p-etvxqupr-bcs.html
Texture是保存在GPU缓冲中的一张纹理。是由一张图片创建获得的。
SpriteFrame是Texture+Rect,根据一张纹理材质来剪切获得。
SpriteFrame *spFrame = SpriteFrame::createWithTexture(texture,rect);
createWithTexture函数的定义如下:
- SpriteFrame*SpriteFrame::createWithTexture(Texture2D*texture,constRect&rect)
- {
- SpriteFrame*spriteFrame=newSpriteFrame();
- spriteFrame->initWithTexture(texture,rect);
- spriteFrame->autorelease();
- returnspriteFrame;
- }
使用SpriteFrame 我们可以创建想要见到的Sprite。
Sprite *sp = Sprite::createWithSpriteFrame(spFrame);
这样就通过剪切的Texture创建出了我们想要的Sprite。
Sprite可以动态的改变它的spFrame,这样就形成了精灵帧。
sp->setDisplayFrame(spFrame2);
请看setDisplayFrame的定义:
- voidsetDisplayFrame(SpriteFrame*newFrame){setSpriteFrame(newFrame);}
- voidsetSpriteFrame(SpriteFrame*frame)
- {
- CC_SAFE_RETAIN(frame);
- CC_SAFE_RELEASE(_spriteFrame);
- _spriteFrame=frame;
- }
这样就动态修改了Sprite的表现了。
原文链接:https://www.f2er.com/cocos2dx/342919.html