cocos2d-x 動畫特效集合


轉自:http://www.cnblogs.com/linux-ios/archive/2013/04/09/3009292.html

備用

bool HelloWorld::init()
{
    //////////////////////////////
    // 1. super init first
    if ( !CCLayer::init() )
    {
        return false;
    }
    CCSize size =CCDirector::sharedDirector()->getWinSize();//獲取屏幕大小  
    
    CCSprite * sp = CCSprite::create("Icon.png");
    sp->setPosition(ccp(200, 200));
    
    addChild(sp);
    
//    常見的22種特效
//    CCShaky3D
//作用:創建一個3d晃動的特效
//    參數1:晃動的范圍
//    參數2:是否有z軸晃動
//    參數3:  網格大小
//    參數4:特效持續的時間
//    CCActionInterval * shaky3D= CCShaky3D::create(15, false, ccg(15, 10), 4);
//    sp->runAction(shaky3D);
    
//    CCShakyTiles3D
//    作用:創建一個3d瓷磚晃動的特效
    //    參數1:晃動的范圍
    //    參數2:是否有z軸晃動
    //    參數3:  網格大小
    //    參數4:特效持續的時間
//    CCActionInterval * shakyTiles3D = CCShakyTiles3D::create(15, true, ccg(15, 10), 4);
//    sp->runAction(shakyTiles3D);
    
//    CCWaves
//    創建一個波動特效
//    參數1:波動的速率
//    參數2:振幅
//    參數3:水平波動
//    參數4:垂直波動
//    參數5:網格大小
//    參數6:特效持續時間
//    CCActionInterval * waves = CCWaves::create(10, 20, true, true, ccg(16, 12), 4);
//    sp->runAction(waves);
    
//    CCWaves3D
    //    創建一個3D波動特效
    //    參數1:波動的速率
    //    參數2:振幅
    //    參數3:網格大小
    //    參數4:特效持續時間
//    CCActionInterval * waves3d= CCWaves3D::create(10, 20, ccg(16, 12), 4);
//    sp->runAction(waves3d);
    
//    CCWavesTiles3D
    //    創建一個3D瓷磚波動特效
    //    參數1:波動的速率
    //    參數2:振幅
    //    參數3:網格大小
    //    參數4:特效持續時間
//    CCActionInterval * wavesTiles3D = CCWavesTiles3D::create(10, 20, ccg(16, 12), 4);
//    sp->runAction(wavesTiles3D);
    
//    CCFlipX3D
//    作用:x軸3D反轉特效
//    參數:特效持續的時間
//    CCActionInterval *flipX3D= CCFlipX3D::create(4);
//    sp->runAction(flipX3D);
    
//    CCFlipY3D
    //    作用:Y軸3D反轉特效
    //    參數:特效持續的時間
//    CCActionInterval * flipY3D = CCFlipY3D::create(4);
//    sp->runAction(flipY3D);
    
//    CCLens3D
//    作用:  凸鏡特效
//    參數1:凸鏡中心點
//    參數2:凸鏡半徑
//    參數3:網格大小
//    參數4:網格持續時間
//    CCActionInterval * lens3D= CCLens3D::create(CCPointMake(size.width/2, size.height/2), 240, ccg(15, 10), 4);
//    sp->runAction(lens3D);

//    CCRipple3D
//    作用:水波特效
//    參數1:起始位子
//    參數2:半徑
//    參數3:速率
//    參數4:振幅
//    參數5:網格大小
//    參數6:特效持續的時間
//    CCActionInterval * ripple3D= CCRipple3D::create(CCPointMake(size.width/2, size.height/2), 240, 4, 160, ccg(15,10), 4);
//    sp->runAction(ripple3D);
    
//    CCLiquid
//    作用:液體特效
//    參數1:速率
//    參數2:振幅
//    參數3:網格大小
//    參數4:特效持續時間
//    CCActionInterval * liquid = CCLiquid::create(4, 20, ccg(16, 12), 4);
//    sp->runAction(liquid);
    
//    CCTwirl
//    作用:扭曲旋轉特效
//    參數1:扭曲旋轉中心點
//    參數2:扭曲旋轉的次數
//    參數3:振幅
//    參數4:網格大小
//    參數5:特效持續時間
//    CCActionInterval  * twirl = CCTwirl::create(CCPointMake(size.width/2, size.height/2), 2, 2.5f, ccg(12, 8), 3);
//    sp->runAction(twirl);
    
//    CCShuffleTiles
//    作用:瓷磚的洗牌特效
//    參數1:隨機數
//    參數2:網格大小
//    參數3:特效持續的時間
//    CCActionInterval *shuffleTiles = CCShuffleTiles::create(16, ccg(16, 12), 2);
//    sp->runAction(shuffleTiles);
    
//    CCShatteredTiles3D
//    作用:破碎的3D瓷磚特效
//    參數1:范圍
//    參數2:是否開啟z軸
//    參數3:網格大小
//    參數4:特效持續的時間
//    CCActionInterval * shatteredTiles3D= CCShatteredTiles3D::create(25, true, ccg(16, 12), 4);
//    sp->runAction(shatteredTiles3D);

//    CCFadeOutTRTiles
//    作用:部落格效果 , 從左下角到右下角
//    參數1:網格大小
//    參數2:特效持續的時間
//    CCActionInterval * fadeOutTRTiles = CCFadeOutTRTiles::create(ccg(16, 12), 3);
//    sp->runAction(fadeOutTRTiles);

//    CCFadeOutBLTiles
    //    作用:部落格效果 , 從右下角到左下角
    //    參數1:網格大小
    //    參數2:特效持續的時間
//    CCActionInterval * fadeOutBLTiles = CCFadeOutBLTiles::create(ccg(16, 12), 3);
//    sp->runAction(fadeOutBLTiles);

//    CCFadeOutUpTiles
//    作用:折疊效果 從下到上
    //    參數1:網格大小
    //    參數2:特效持續的時間
//    CCActionInterval * fadeOutUpTiles = CCFadeOutUpTiles::create(ccg(16, 12), 3);
//    sp->runAction(fadeOutUpTiles);
    
//    CCFadeOutDownTiles
    //    作用:折疊效果 從上到下
    //    參數1:網格大小
    //    參數2:特效持續的時間
//    CCActionInterval * fadeOutDownTiles = CCFadeOutDownTiles::create(ccg(16, 12), 3);
//    sp->runAction(fadeOutDownTiles);
  
//    CCTurnOffTiles
//    作用:方塊消失特效
    //    參數1:網格大小
    //    參數2:特效持續的時間
//    CCActionInterval * turnOffTiles = CCTurnOffTiles::create(ccg(16, 12), 3);
//    sp->runAction(turnOffTiles);

//    CCJumpTiles3D
//    作用:跳動的方格特效
//    參數1:跳動的次數
//    參數2:網格的大小
//    參數3:特效持續的時間
//    CCActionInterval * jumpTiles3D = CCJumpTiles3D::create(1, 30, ccg(15, 10), 2);
//    sp->runAction(jumpTiles3D);
    
//    CCSplitRows
//    作用:分多行消失特效
//    參數1:行數
//    參數2:特效持續的時間
//    CCActionInterval *splitRows= CCSplitRows::create(20, 2);
//    sp->runAction(splitRows);

//    CCSplitCols
    //    作用:分多列消失特效
    //    參數1:列數
    //    參數2:特效持續的時間
//    CCActionInterval * splitCols = CCSplitCols::create(20, 2);
//    sp->runAction(splitCols);
    
//    CCPageTurn3D
//    作用:3D翻頁特效
//    參數1:網格大小
//    參數2:特效持續的時間
    CCActionInterval * pageTurn3D = CCPageTurn3D::create(ccg(15, 10), 3);
    sp->runAction(pageTurn3D);
    
    
    
    return true;
}

 

//這個是光暈效果的參數 
CCSpriteBatchNode *m_Batchnode=CCSpriteBatchNode::create("bullet.png");ccBlendFunc cb={GL_SRC_ALPHA,GL_ONE};  
//將光暈效果加入
m_Batchnode->setBlendFunc(cb); 
//最后實例化一個 
CCSpriteBatchNode里this->addChild(m_Batchnode);  
//緩存中取出W1.png圖片,這個圖片是在plist文件中所在的<key>標簽里面的 
CCSpriteCCSprite *bullet=CCSprite::createWithSpriteFrameName("W1.png");  
//記得不是用this->addChild而是用m_Batchnode->addChild(bullet);  
//這樣就能有光暈效果啦 主要是理解CCSpriteBatchNode 
bullet->setPosition(ccp(x,y));
m_Batchnode->addChild(bullet); 

 

轉自:http://blog.csdn.net/coodi8/article/details/7864520

//1. 不斷旋轉
CCRotateBy* rotate = CCRotateBy::actionWithDuration(1, 360);
CCRepeatForever* repeatRotate = CCRepeatForever::actionWithAction(rotate);

//2. 上升消失
CCMoveBy* move = CCMoveBy::actionWithDuration(2, ccp(0,200));
CCFadeOut* fadeOut = CCFadeOut::actionWithDuration(2);
CCFiniteTimeAction* fadeOutAct = CCSpawn::actions(move,fadeOut,NULL);

//3.貝賽而曲線
ccBezierConfig bezier;
bezier.controlPoint_1 = ccp(100,200);
bezier.controlPoint_2 = ccp(200, -100);
bezier.endPosition = ccp(400, 100);
CCBezierBy* bezierBy = CCBezierBy::actionWithDuration(5.0, bezier);

//4. 變色
CCTintTo* tint1 = CCTintTo::actionWithDuration(1.5, 255, 0, 0);
CCTintTo* tint2 = CCTintTo::actionWithDuration(1.5, 0, 255, 255);
CCTintTo* tint3 = CCTintTo::actionWithDuration(1.5, 0, 255, 0);
CCFiniteTimeAction* tintActions = CCSequence::actions(tint1,tint2,tint3,NULL);
CCRepeatForever* repeatTint = CCRepeatForever::actionWithAction((CCActionInterval*)tintActions);

//5.閃爍
CCBlink* blink = CCBlink::actionWithDuration(5, 25);

//6.動作(動畫)結束后,調用某函數
CCFadeOut* fadeOut = CCFadeOut::actionWithDuration(0.8);
CCCallFunc* endCall = CCCallFunc::actionWithTarget(starSprite, callfunc_selector(FlashingMeteors::removeFromParentAndCleanup));
CCFiniteTimeAction* acts = CCSequence::actions(fadeOut,endCall, NULL);
starSprite->runAction(acts);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM