Cocos2d-x入门: 序列帧动画实现

cocos2d-x 2.x   
CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("<span style="font-family: Arial, Helvetica, sans-serif;">Splash</span><span style="font-family: Arial, Helvetica, sans-serif;">.plist");</span>
CCArray* splashFrames = CCArray::create();
    for (int i=1; i<=23; i++) {

        const char* str = CCString::createWithFormat("Splash_%04d.png",i)->getCString();
        CCSpriteFrame* frame = CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName(str);
        splashFrames->addObject(frame);
        
    }
    CCAnimation *splashAnim = CCAnimation::create();

    splashAnim = CCAnimation::createWithSpriteFrames(splashFrames, 0.02f);
    CCAnimation *splashAnim = CCAnimation::createWithSpriteFrames(splashFrames, 0.2);
    splashAnim->setLoops(1);
    CCAnimate *animate = CCAnimate::create(splashAnim);
    CCSprite* animSprite = CCSprite::createWithSpriteFrameName("<span style="font-family: Arial, Helvetica, sans-serif;">Splash_</span><span style="font-family: Arial, Helvetica, sans-serif;">0000.png");</span>
    animSprite->runAction(animate);

或者:
CCAnimationCache* animationCache = CCAnimationCache::sharedAnimationCache();
animationCache->addAnimationsWithFile("dealer_smile_ani.plist");
CCAnimation* animation = animationCache->animationByName("dealer_smile_ani");
nimSprite->runAction(CCRepeatForever::create(CCSequence::createWithTwoActions(CCAnimate::create(animation), CCDelayTime::create(2.5f))));

Cocos2d-x 3.x
Vector<SpriteFrame*> splashFrames;
    for (int i=1; i<=23; i++) {

        const char* str = CCString::createWithFormat("Splash_%04d.png",i)->getCString();
        SpriteFrame* frame = cache->getSpriteFrameByName(str);
        splashFrames.pushBack(frame);
        
    }
    Animation *splashAnim = Animation::create();

    splashAnim = Animation::createWithSpriteFrames(splashFrames, 0.02f);

很明显,2.x与3.x的实现方式,最大的区别在于3.x用不定长的Vector来组织帧序列,相对更加灵活.

2.x的两种方式更加plist的不同类型区分:frame和animal类型。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值