【Cocos2d-x 011】 自定義動畫 使用plist來實現

使用plist文件,結合cocos2dx裏面的動畫類CCAnimation來實現,這種方式比較推薦

也有兩種方式:


轉:http://blog.csdn.net/kkk0526/article/details/9145393


代碼如下:

////---------------手動添加序列幀實現動畫
//    CCSprite* sp = CCSprite::create("crop1.png");
//    sp->setPosition(ccp(170,200));
//    addChild(sp);
//    
//    CCAnimation* animation = CCAnimation::create();
//    animation->addSpriteFrameWithFileName("crop1.png");
//    animation->addSpriteFrameWithFileName("crop2.png");
//    animation->addSpriteFrameWithFileName("crop3.png");
//    animation->addSpriteFrameWithFileName("crop4.png");
//    animation->setDelayPerUnit(2.8f / 14.0f);//必須設置否則不會動態播放
//    animation->setRestoreOriginalFrame(true);//是否回到第一幀
//    animation->setLoops(-1);//重複次數 (-1:無限循環)
//    CCFiniteTimeAction * animate = CCAnimate::create(animation);
//    sp->runAction(animate);


////---------------通過資源文件創建動畫
    CCTexture2D::PVRImagesHavePremultipliedAlpha(true);
    CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("crop.plist");
    
    //利用幀緩存創建精靈
    CCSprite* sp = CCSprite::createWithSpriteFrameName("crop1.png");
    sp->setPosition(ccp(170,200));
    addChild(sp);
    
    CCArray* animFrames = CCArray::createWithCapacity(4);
    char str[100] = {0};
    for(int i = 1; i < 5; i++)
    {
        sprintf(str, "crop%i.png", i);
        CCSpriteFrame *frame = CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName(str);
        animFrames->addObject(frame);
    }
    CCAnimation *animation = CCAnimation::createWithSpriteFrames(animFrames, 0.3f);
    animation->setLoops(-1);
    
    sp->runAction(CCAnimate::create(animation));
    CCSpriteFrameCache::sharedSpriteFrameCache()->removeSpriteFrameByName("crop.plist")

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章