创建序列帧动画特效

首先从官方网站或者其他地方下载TexturePackerGUI到电脑上,然后利用这个软件制作plist文件,将它保存到resource文件夹下,然后创建。

代码如下:

void Plane2::boom(Sprite* i){
	SpriteFrameCache *frameCache = SpriteFrameCache::getInstance();
	frameCache->addSpriteFramesWithFile("boom.plist", "boom.png");
	if (boom==NULL){      //初始化为空,进入判断
		boom = Sprite::createWithSpriteFrameName("tx5_1.png");         //创建新特效
		boom->setPosition(Vec2(i->getPositionX(), i->getPositionY()));      //获取对象,设置为特效坐标
		this->addChild(boom, 5, 1);              
		Animation* animation = Animation::create();
		animation->setDelayPerUnit(0.01f);             //0.01秒播放序列帧动画
		animation->addSpriteFrame(frameCache->getSpriteFrameByName("tx5_1.png"));
		animation->addSpriteFrame(frameCache->getSpriteFrameByName("tx5_2.png"));
		animation->addSpriteFrame(frameCache->getSpriteFrameByName("tx5_3.png"));
		animation->addSpriteFrame(frameCache->getSpriteFrameByName("tx5_4.png"));
		animation->addSpriteFrame(frameCache->getSpriteFrameByName("tx5_5.png"));
		animation->addSpriteFrame(frameCache->getSpriteFrameByName("tx5_6.png"));
		animation->addSpriteFrame(frameCache->getSpriteFrameByName("tx5_7.png"));
		animation->addSpriteFrame(frameCache->getSpriteFrameByName("tx5_8.png"));
		animation->addSpriteFrame(frameCache->getSpriteFrameByName("tx5_9.png"));
		animation->addSpriteFrame(frameCache->getSpriteFrameByName("tx5_10.png"));
		Animate* animate = Animate::create(animation);
		boom->runAction(Sequence::create(animate,CallFunc::create(CC_CALLBACK_0(Plane2::remove,this)),nullptr));  
	}
}

代码不难,理解起来也不难,基本上看一遍就知道它的用法。


你可能感兴趣的:(cocos2d-x)