//1、收集动画帧(精灵帧)
SpriteFrameCache* pCache = SpriteFrameCache::getInstance();
char szName[32] = {}; //精灵帧名称字符串
//2、通过Animation来收集动画信息
Animation* pStraightAnim = Animation::create();
for (int i = 0; i < 2; i++) //第0张和第1张图片
{
sprintf_s(szName, "Plane0_%d.png", i); //sprintf_s 格式化
SpriteFrame* pFrame = pCache->getSpriteFrameByName(szName); //获取图片精灵帧,保存起来pFrame
pStraightAnim->addSpriteFrame(pFrame); //把精灵帧加入Animation
}
//3、设置时间间隔信息
pStraightAnim->setDelayPerUnit(0.5);
//4、把动画信息pAnimation传给Animate,创建动画
m_pStraight = Animate::create(pStraightAnim); //播放一次
RepeatForever* pRepeat = RepeatForever::create(m_pStraight); //循环播放
m_pPic->runAction(pRepeat); //飞机调用runAction运行该重复动画
//为了防止从别的动画切换回直飞时,该动画被释放了,要retain(重要)
m_pStraight->retain();
cocos2d-x实战项目【飞机大战】-- 动画
最新推荐文章于 2024-07-31 01:01:10 发布
这篇博客介绍了如何在编程中收集动画帧并创建动画。首先,通过SpriteFrameCache获取精灵帧,然后利用Animation将精灵帧组合成动画,并设置时间间隔。接着,通过Animate和RepeatForever实现动画的循环播放。最后,为防止动画被意外释放,使用了retain方法进行保留。
摘要由CSDN通过智能技术生成