【cocos2d-x 3】关于plist和TexturePacker的简单使用

前端之家收集整理的这篇文章主要介绍了【cocos2d-x 3】关于plist和TexturePacker的简单使用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

说明: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目录。

2 新建一个cocos2d-x项目,添加代码

//
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

猜你在找的Cocos2d-x相关文章