cocos2d-x 3.10 C++加载动画

//加载动画

auto animation = Animation::create();
 animation->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("hero_blowup_n1.png"));
 animation->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("hero_blowup_n2.png"));
 animation->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("hero_blowup_n3.png"));
 animation->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("hero_blowup_n4.png"));
 animation->setDelayPerUnit(0.2);
 animation->setRestoreOriginalFrame(true);

 auto blowUp = Animate::create(animation);
 
 //爆炸完后结束游戏
 auto gameoverCall = CallFunc::create([this]() {
  //log("call gameover!");
  removeFromParent();
  GameScene::sharedGameLayer()->gameover();
 });

 this->runAction(Sequence::create(blowUp, gameoverCall, nullptr));

1,

CCSpriteFrame:精灵帧。相对于动画产生的,就是一张纹理图片。

CCAnimationFrame:动画帧。由精灵帧和间隔帧数组成,是动画CCAnimation中的一帧。

CCSpriteFrameCache:精灵帧缓冲。用于存放精灵帧CCSpriteFrame的缓冲池。

CCAnimationCache:动画缓冲。用于存放动画CCAnimation的缓冲池。

delayPerUnit:    单位帧间隔。连续两个动画帧之间的间隔。

delayUnits:        间隔帧数。当前动画帧到下一个动画帧需要等待的单位帧间隔的个数。

setRestoreOriginalFrame:动画结束时,是否还原为第一帧。

(2)SpriteFrameCache、AnimationCache 中获得、释放单例对象的方法:

> 使用getInstance() 替代 sharedSpriteFrameCache()

        > 使用destroyInstance() 替代 purgeSharedSpriteFrameCache()

    (3)Animation 中一些参数的变化:

> createWithSpriteFrames  中的参数CCArray 改为 Vector<SpriteFrame*>&

> create                   中的参数CCArray 改为 Vector<AnimationFrame*>&

> setFrames()/getFrames() 中的参数CCArray 改为 Vector<AnimationFrame*>&

    (4)Animation 中的函数变化:

        >addSpriteFrameWithFileName(..) 改为addSpriteFrameWithFile(...)

    (5)其他变化不大。

 

cocos2dx中的基本动画是由CCAnimation和CCAnimate两个类的配合而完成的。

    (1)CCAnimation用于存储动画相关的信息。其中包含用于动画的所有动画帧信息,单位帧的时间间隔,总帧数,动画重复次数等等信息。

    (2)CCAnimate 用于创建动画的CCAction动作,需要CCAnimation作为创建的参数。

    PS:Animation 只是存放了动画需要的数据信息。而执行动画还是需要 Animate。

 

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值