说明:cocos2d-x版本为 3.4,TexturePacker版本为3.0.9,C++IDE版本为VC++2012
这篇日志对于这个主题有更好的描述:http://blog.xulingmin.com/cocos2d-x-%E6%BA%90%E7%A0%81%E5%AD%A6%E4%B9%A0-1/
1TexturePacker的下载与使用
下载地址为https://www.codeandweb.com/texturepacker/
这个软件功能是把很多零碎的png集合在一起,可以方便的使用。如果愿意,也可以分开使用。
实际比较了下,14个png文件grossini_dance_1.png --grossini_dance_14.png
1 使用 TexturePacker之前,14个文件,大小 9.1k,占用空间56k
2 使用TexturePacker之后,2个文件,大小 16.5k,占用空间20k
打开TexturePacker,直接加载精灵进项目,然后导出一个plist文件[plist可以使用编辑工具直接打开查看,实际就是一个xml文件]和一个png文件。
把test.plist和test.png文件copy到 Coco2d-x的项目Resoures目录下。或者直接导出的时候,直接选择Resources目录。
//
SpriteFrameCache *cache = SpriteFrameCache::getInstance();
cache->addSpriteFramesWithFile("test.plist");
Sprite *spr = Sprite::createWithSpriteFrameName("grossini_dance_10.png");
spr->setPosition(Vec2(origin.x + visibleSize.width/2,
origin.y + visibleSize.height - spr->getContentSize().height));
this->addChild(spr);
Vector<SpriteFrame *> frames;
for(int i=0; i<14; i++)
{
std::ostringstream ostr;
if (i<9) ostr<<"grossini_dance_0"<<i+1<<".png";
else ostr<<"grossini_dance_"<<i+1<<".png";
SpriteFrame *sf = cache->getSpriteFrameByName(ostr.str().c_str());
frames.insert(i,sf);
}
Animation *pAnimation = Animation::createWithSpriteFrames(frames,0.5f);
Animate *pAnimate = Animate::create(pAnimation);
spr->runAction(RepeatForever::create(pAnimate));
这样的效果就是把一系列动画帧连续的播放了。时间间隔为0.5秒。
--the end