代码copy了http://blog.csdn.net/fengqiaoyebo2008/article/details/8712270
{
CCSize size = CCDirector::sharedDirector()->getWinSize(); //获得屏幕的尺寸
CCArray* pArray = CCArray::createWithCapacity(12);
CCSpriteFrameCache* pCache = CCSpriteFrameCache::sharedSpriteFrameCache(); //获得SpriteFrame的缓存
pCache->addSpriteFramesWithFile("effect/fight_effect_10008.plist");
CCSprite* pSprite = CCSprite::createWithSpriteFrameName("fight_effect_10008/01.png"); //用attack.png中的第一张图片创建一个精灵
pSprite->setPosition(ccp(size.width/2,size.height/2)); //设置精灵的坐标
char name[64];
for(int i=0; i<12; i++) //将plist中的图片都加载,放到array中
{
sprintf(name, "fight_effect_10008/%02d.png", i + 1);
CCLog("name:%s", name);
CCSpriteFrame* pframe = pCache->spriteFrameByName(name);
pArray->addObject(pframe);
}
CCAnimation* pAnimation = CCAnimation::createWithSpriteFrames(pArray,0.2f); //用array中的spriteframe创建一个animation,每帧间隔0.2s
CCAnimate* panimate = CCAnimate::create(pAnimation);
//pSprite->runAction(CCRepeatForever::create(panimate));
pSprite->runAction(panimate);
this->addChild(pSprite, 0);
}
注意几个问题:
1,createWithSpriteFrameName用的是plist中的key。
2,char name[]的长度,以及拼接后名字是否存在,所以i+1
3,pArray的长度12
plist文件及图片下载:http://download.csdn.net/detail/hbuxiaoshe/8740183
plist文件结构(来自某个游戏apk):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>frames</key>
<dict>
<key>fight_effect_10008/01.png</key>
<dict>
<key>frame</key>
<string>{{200,2},{52,29}}</string>
<key>offset</key>
<string>{-1,-1}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{22,14},{52,29}}</string>
<key>sourceSize</key>
<string>{98,55}</string>
</dict>
<key>fight_effect_10008/02.png</key>
<dict>
<key>frame</key>
<string>{{2,2},{98,55}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{98,55}}</string>
<key>sourceSize</key>
<string>{98,55}</string>
</dict>
<key>fight_effect_10008/03.png</key>
<dict>
<key>frame</key>
<string>{{190,315},{80,45}}</string>
<key>offset</key>
<string>{0,-1}</string>
<key>rotated</key>
<true/>
<key>sourceColorRect</key>
<string>{{9,6},{80,45}}</string>
<key>sourceSize</key>
<string>{98,55}</string>
</dict>
<key>fight_effect_10008/04.png</key>
<dict>
<key>frame</key>
<string>{{102,2},{96,53}}</string>
<key>offset</key>
<string>{1,-1}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{2,2},{96,53}}</string>
<key>sourceSize</key>
<string>{98,55}</string>
</dict>
<key>fight_effect_10008/05.png</key>
<dict>
<key>frame</key>
<string>{{2,271},{84,47}}</string>
<key>offset</key>
<string>{1,-1}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{8,5},{84,47}}</string>
<key>sourceSize</key>
<string>{98,55}</string>
</dict>
<key>fight_effect_10008/06.png</key>
<dict>
<key>frame</key>
<string>{{190,221},{92,51}}</string>
<key>offset</key>
<string>{1,-1}</string>
<key>rotated</key>
<true/>
<key>sourceColorRect</key>
<string>{{4,3},{92,51}}</string>
<key>sourceSize</key>
<string>{98,55}</string>
</dict>
<key>fight_effect_10008/07.png</key>
<dict>
<key>frame</key>
<string>{{2,218},{92,51}}</string>
<key>offset</key>
<string>{1,-1}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{4,3},{92,51}}</string>
<key>sourceSize</key>
<string>{98,55}</string>
</dict>
<key>fight_effect_10008/08.png</key>
<dict>
<key>frame</key>
<string>{{96,216},{92,51}}</string>
<key>offset</key>
<string>{1,-1}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{4,3},{92,51}}</string>
<key>sourceSize</key>
<string>{98,55}</string>
</dict>
<key>fight_effect_10008/09.png</key>
<dict>
<key>frame</key>
<string>{{2,165},{92,51}}</string>
<key>offset</key>
<string>{1,-1}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{4,3},{92,51}}</string>
<key>sourceSize</key>
<string>{98,55}</string>
</dict>
<key>fight_effect_10008/10.png</key>
<dict>
<key>frame</key>
<string>{{96,163},{92,51}}</string>
<key>offset</key>
<string>{1,-1}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{4,3},{92,51}}</string>
<key>sourceSize</key>
<string>{98,55}</string>
</dict>
<key>fight_effect_10008/11.png</key>
<dict>
<key>frame</key>
<string>{{190,127},{92,51}}</string>
<key>offset</key>
<string>{1,-1}</string>
<key>rotated</key>
<true/>
<key>sourceColorRect</key>
<string>{{4,3},{92,51}}</string>
<key>sourceSize</key>
<string>{98,55}</string>
</dict>
<key>fight_effect_10008/12.png</key>
<dict>
<key>frame</key>
<string>{{2,112},{92,51}}</string>
<key>offset</key>
<string>{1,-1}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{4,3},{92,51}}</string>
<key>sourceSize</key>
<string>{98,55}</string>
</dict>
<key>fight_effect_10008/13.png</key>
<dict>
<key>frame</key>
<string>{{96,110},{92,51}}</string>
<key>offset</key>
<string>{1,-1}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{4,3},{92,51}}</string>
<key>sourceSize</key>
<string>{98,55}</string>
</dict>
<key>fight_effect_10008/14.png</key>
<dict>
<key>frame</key>
<string>{{96,269},{92,49}}</string>
<key>offset</key>
<string>{1,-1}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{4,4},{92,49}}</string>
<key>sourceSize</key>
<string>{98,55}</string>
</dict>
<key>fight_effect_10008/15.png</key>
<dict>
<key>frame</key>
<string>{{2,59},{92,51}}</string>
<key>offset</key>
<string>{1,-1}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{4,3},{92,51}}</string>
<key>sourceSize</key>
<string>{98,55}</string>
</dict>
<key>fight_effect_10008/16.png</key>
<dict>
<key>frame</key>
<string>{{102,57},{92,51}}</string>
<key>offset</key>
<string>{1,-1}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{4,3},{92,51}}</string>
<key>sourceSize</key>
<string>{98,55}</string>
</dict>
<key>fight_effect_10008/17.png</key>
<dict>
<key>frame</key>
<string>{{200,33},{92,51}}</string>
<key>offset</key>
<string>{1,-1}</string>
<key>rotated</key>
<true/>
<key>sourceColorRect</key>
<string>{{4,3},{92,51}}</string>
<key>sourceSize</key>
<string>{98,55}</string>
</dict>
</dict>
<key>metadata</key>
<dict>
<key>format</key>
<integer>2</integer>
<key>realTextureFileName</key>
<string>fight_effect_10008.png</string>
<key>size</key>
<string>{256,512}</string>
<key>smartupdate</key>
<string>$TexturePacker:SmartUpdate:45827330fc838aa233ae5d670f1b68cd$</string>
<key>textureFileName</key>
<string>fight_effect_10008.png</string>
</dict>
</dict>
</plist>