[Cocos2d-x]CCSpriteFrameCache的使用

时间:2024-07-27 15:34:44

文档:

http://cocos2d.cocoachina.com/document/index/class?url=dc/dda/classcocos2d_1_1_c_c_sprite_frame_cache.html

简单描述:

CCSpriteFrameCache提供CCSpriteFrame的缓存,可以使用它创建动画,并且具有较高的效率。

使用场景:

需要创建帧动画时,可以使用CCSpriteFrameCache

如何使用:

1.把多张图片通过Zwoptex软件(http://zwoptexapp.com/),生成一张png图,并且创建生成对应的plist文件

2.使用plist文件创建CCSpriteFrameCache

注意:

1.创建cache时候,如果plist文件与大png图名字不相同,则需要显示指定png图片名

2.卸载场景时候,需要remove添加的plist资源

EX:

    //获取单例CCSpriteFrameCache
CCSpriteFrameCache* cache = CCSpriteFrameCache::sharedSpriteFrameCache(); //向cache中添加plist文件和对应的大图
cache->addSpriteFramesWithFile("Jar.plist","Jars.png"); //数组,用于保存使用cache创建的CCSpriteFrame对象,之后用于创建动画
CCArray* animFrames = CCArray::create();
char str[100] = {0};
for(int i = 1; i < 7; i++)
{
sprintf(str, "Default_Jar_%d.png", i); //从CCSpriteFrameCache中获取CCSpriteFrame,用来创建动画
CCSpriteFrame* frame = cache->spriteFrameByName(str); animFrames->addObject(frame);
} //使用CCSpriteFrame集合创建CCAnimation
CCAnimation* animation = CCAnimation::createWithSpriteFrames(animFrames, 0.3f);
m_pFoot = CCSprite::create("Default_Jar_1.png");
addChild(m_pFoot); //CCSprite执行动画
m_pFoot ->runAction(CCRepeatForever::create(CCAnimate::create(animation)));

remove资源:

void FirstSprite::onExit()
{
CCNode:onExit(); //需要清理cache..
CCSpriteFrameCache *cache = CCSpriteFrameCache::sharedSpriteFrameCache();
cache->removeSpriteFramesFromFile("Jar.plist");
}