cocos2d-x之逐帧动画

cocos2d-x之逐帧动画

在bool HelloWorld::init()中添加如下内容

//缓存,帧动画的帧的缓存

    auto cache = SpriteFrameCache::getInstance();

    cache->addSpriteFramesWithFile("anim.plist");//添加帧缓存

   

    Vector<SpriteFrame*> vec;

    //定义一个名字

    char name[15];

    //清空name数组

    memset(name, 0, 15);

   

    //获取每一针的名字,配置animation

    for (int i = 0; i < 20; i ++) {

        //设置每一针的名字,anim后有4w位,不够的用0填充

        sprintf(name, "anim%04d",i);

        //将每一针的名字添加到vec中

        vec.pushBack(cache->getSpriteFrameByName(name));

       

    }

   

   

    //设置animation工具,创建动画,0.1f代表两个帧之间的间隔为0.1秒,美妙10帧

    Animation *animation = Animation::createWithSpriteFrames(vec, 0.1f);

    //使用animate将animation变成动作,animation是动画的配置,不是动作

    Animate *animate = Animate::create(animation);

   

    //使用Sprite去执行动画

    //创建sprite

    auto sprite = Sprite::create();

    addChild(sprite);//将sprite添加进去

    sprite->setPosition(Point(300,300));//设置添加到的位置

    //设置动画不断的运行,animate动画一直执行

    sprite->runAction(RepeatForever::create(animate));

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