cocos2dx Texture、SpriteFrame、Sprite的区别

Texture是保存在GPU缓冲中的一张纹理。是由一张图片创建获得的。

SpriteFrame是Texture+Rect,根据一张纹理材质来剪切获得。

SpriteFrame *spFrame = SpriteFrame::createWithTexture(texture, rect);

createWithTexture函数的定义如下:

[cpp]  view plain  copy
  1. SpriteFrame* SpriteFrame::createWithTexture(Texture2D *texture, const Rect& rect)  
  2. {  
  3.     SpriteFrame *spriteFrame = new SpriteFrame();  
  4.     spriteFrame->initWithTexture(texture, rect);  
  5.     spriteFrame->autorelease();  
  6.       
  7.     return spriteFrame;  
  8. }  


使用SpriteFrame 我们可以创建想要见到的Sprite。

Sprite *sp = Sprite::createWithSpriteFrame(spFrame);

这样就通过剪切的Texture创建出了我们想要的Sprite。


Sprite可以动态的改变它的spFrame,这样就形成了精灵帧。

sp->setDisplayFrame(spFrame2);

请看setDisplayFrame的定义:

[cpp]  view plain  copy
  1. void setDisplayFrame(SpriteFrame *newFrame) { setSpriteFrame(newFrame); }  
  2.     void setSpriteFrame(SpriteFrame* frame)  
  3.     {  
  4.         CC_SAFE_RETAIN(frame);  
  5.         CC_SAFE_RELEASE(_spriteFrame);  
  6.         _spriteFrame = frame;  
  7.     }  
这样就动态修改了Sprite的表现了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值