Cocos2d-x研究: 序列帧动画实现

cocos2d-x 2.x

    CCArray* splashFrames = CCArray::createWithCapacity(16);
    for (int i=1; i<=23; i++) {

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

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


Cocos2d-x 3.x

    Vector 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来组织帧序列,相对更加灵活

你可能感兴趣的:(游戏开发)