有时候制作帧动画,会使用很多张图片,占用很多资源,我们可以把这些图片用工具放到一张XXX.PNG图片中(可以通过texturepacker工具把很多张图片放到一张图片中),使用的时候,通过XXX.plist配置文件读取,这样可以很有效的节约内存。
SpriteFrameCache::getInstance()->addSpriteFramesWithFile("effect11.plist");
auto sp = Sprite::createWithSpriteFrameName("1100.png");
sp->setPosition(300,400);
auto ani = Animation::create();
for (int i = 1100;i < 1108;i++)
{
std::string fileName = StringUtils::format("%d.png",i);
ani->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName(fileName));
}
ani->setLoops(-1);
ani->setDelayPerUnit(0.05f);
Animate* animate = Animate::create(ani);
sp->runAction(animate);
this->addChild(sp);
如上代码,通过SpriteFrameCache加载图片资源,然后从中取出里面的素材可以用来做精灵,可以用来制作帧动画,很方便,而且运行效率很高。