加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-14 20:45:18 所属栏目:百科 来源:网络整理
导读:说明: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/ 1 TexturePacker的下载与使用 下载地址为https://www.codeand

说明: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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读