添加动画(两种)

添加动画(两种)


    /////////   添加帧动画(每一副图加载)   ///////////

    // 添加一个精灵用于执行帧动画
    Sprite *sprite = Sprite::create("grossini_dance_01.png");
    sprite->setPosition(Vec2(visibleSize.width / 2, visibleSize.height / 2));
    this->addChild(sprite);

    Animation *animation = Animation::create();
    char str[50] = { 0 };
    for (int i = 1; i < 14; i++){
        sprintf(str, "grossini_dance_%02d.png", i);
        // 将图片添加进去
        animation->addSpriteFrameWithFileName(str);
    }

    // 设置每帧动画的时间间隔
    animation->setDelayPerUnit(0.3f);
    // 设置动画执行完最后一帧后是否回到第一帧
    animation->setRestoreOriginalFrame(true);
    sprite->runAction(Animate::create(animation));
    // 无限运动
    //sprite->runAction(RepeatForever::create( Animate::create(animation)));


    /////////   添加帧动画(每一副图加载)   ///////////

    
    
    
    
    
    
    
    /////////   添加帧动画(帧缓存)    //////////

    // 创建精灵,用来执行动画
    Sprite *sprite = Sprite::create();
    sprite->setPosition(Vec2(visibleSize.width / 2, visibleSize.height / 2));
    addChild(sprite);


    // 创建帧缓存
    SpriteFrameCache *spriteFrameCache = SpriteFrameCache::getInstance();
    // 添加帧缓存的文件
    spriteFrameCache->addSpriteFramesWithFile("grossini.plist");

    // 设置数组,存放帧缓存的图片信息
    Vector<SpriteFrame*> vec;
    // 创建字符数组,用于存储图片的名称
    char name[50];
    // 初始化数组
    memset(name, 0, 50);
    for (int i = 1; i < 15; i++){
        // 将图片的名字添加到 name 数组中
        sprintf(name, "grossini_dance_%02d.png", i);
        // 将图片添加到容器中
        vec.pushBack(spriteFrameCache->getSpriteFrameByName(name));
    }

    // 创建帧动画
    Animation* animation = Animation::createWithSpriteFrames(vec,0.3f);

    sprite->runAction(Animate::create(animation));


    /////////   添加帧动画(帧缓存)    //////////


    
    
    
   

原文地址:https://www.cnblogs.com/dudu580231/p/4556003.html