cocos2dx Texture、SpriteFrame、Sprite的区别

本文介绍了cocos2dx中Texture、SpriteFrame和Sprite的区别。Texture是GPU缓存的纹理,由图片创建;SpriteFrame是Texture加上Rect,用于从Texture中剪切指定部分;Sprite是可动态改变显示帧的精灵组件,能通过SpriteFrame创建并显示特定图像。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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;
    }
这样就动态修改了Sprite的表现了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值