cocos2d-x 3.1.1 學習筆記[4]GridActions 網格動畫


文章出自於  http://blog.csdn.net/zhouyunxuan



老樣子。見代碼。

    //GridActions can only used on NodeGrid
    
    auto  nodeGrid = NodeGrid::create();
    auto sp = Sprite::create("card_bg_big_26.jpg");
    sp->setPosition(Vec2(320, 480));
    sp->setAnchorPoint(Vec2(0.5, 0.5));
    nodeGrid->addChild(sp);
    this->addChild(nodeGrid);


    
    /**
     * 創建一個3d晃動的特效
     * Shaky3D::create(float duration, const cocos2d::Size &gridSize, int range, bool shakeZ)
     * gridSize : 網格大小
     * range : 晃動的範圍
     * shakeZ: 是否搖晃z軸
     */
    auto e1 = Shaky3D::create(3, Size(15,10), 5, false);
    

    /**
     * 創建一個3d瓷磚晃動的特效
     * ShakyTiles3D::create(float duration, const cocos2d::Size &gridSize, int range, bool shakeZ)
     * gridSize : 網格大小
     * range : 晃動的範圍
     * shakeZ: 是否搖晃z軸
     */
    auto e2 = ShakyTiles3D::create(3, Size(15, 10), 5, false);
    
    
    /**
     * 創建一個3d波動的特效
     * Waves3D::create(float duration, const cocos2d::Size &gridSize, unsigned int waves, float amplitude)
     * gridSize : 網格大小
     * waves : 晃動次數
     * amplitude: 振幅
     */
    auto e3 = Waves3D::create(3, Size(15, 10), 5, 5);
    
    
    /**
     * 創建一個3d瓷磚波動的特效(效果不好,有時候會瓷磚變不回原來的圖案。)
     * Waves3D::create(float duration, const cocos2d::Size &gridSize, unsigned int waves, float amplitude)
     * gridSize : 網格大小
     * waves : 波動速率
     * amplitude: 振幅
     */
    auto e4 = WavesTiles3D::create(3, Size(15, 10), 5, 5);
    
    
    /**
     * 創建一個3d瓷磚波動的特效(效果不好,有時候會瓷磚變不回原來的圖案。)
     * Waves::create(float duration, const cocos2d::Size &gridSize, unsigned int waves, float amplitude, bool horizontal, bool vertical)
     * gridSize : 網格大小
     * waves : 波動速率
     * amplitude : 振幅
     * horizontal : 是否水平晃動
     * vertical :是否垂直晃動
     */
    auto e5 = Waves::create(3, Size(15, 10), 5, 5, true, true);
    
    
    /**
     * 創建一個x軸翻轉精靈的動畫
     * FlipX3D::create(float duration)
     */
    auto e6 = FlipX3D::create(3);
    
    
    /**
     * 創建一個y軸翻轉精靈的動畫
     * FlipY3D::create(float duration)
     */
    auto e7 = FlipY3D::create(3);
    
    
    /**
     * 凸鏡特效
     * Lens3D::create(float duration, const cocos2d::Size &gridSize, const cocos2d::Vec2 &position, float radius)
     * gridSize : 網格大小
     * position : 凸鏡中心點
     * radius : 半徑
     */
    auto e8 = Lens3D::create(3, Size(100, 100), Vec2(320, 480), 50);
    
    
    //鑑於有很多重複的參數,就不再寫了0 0
    /**
     * 水波特效
     * Ripple3D::create(float duration, const cocos2d::Size &gridSize, const cocos2d::Vec2 &position, float radius, unsigned int waves, float amplitude)
     */
    auto e9 = Ripple3D::create(3, Size(15, 10), Vec2(320, 480), 60, 5, 5);
    
    
    /**
     * 液體特效
     * Liquid::create(float duration, const cocos2d::Size &gridSize, unsigned int waves, float amplitude)
     */
    auto e10 = Liquid::create(3, Size(15, 10), 5, 5);
    
    
    /**
     * 扭曲旋轉特效
     * Twirl::create(float duration, const cocos2d::Size &gridSize, cocos2d::Vec2 position, unsigned int twirls, float amplitude)
     */
    auto e11 = Twirl::create(3, Size(15, 10), Vec2(320, 480), 5, 5);
    
    
    /**
     * 瓷磚洗牌特效
     * ShuffleTiles::create(float duration, const cocos2d::Size &gridSize, unsigned int seed)
     * seed : 隨機數
     */
    auto e12 =ShuffleTiles::create(3, Size(15, 10), 5);
    
    
    /**
     * 瓷磚洗牌特效
     * ShatteredTiles3D::create(float duration, const cocos2d::Size &gridSize, int range, bool shatterZ)
     */
    auto e13 = ShatteredTiles3D::create(3, Size(15, 10), 5, true);
    
    
    /**
     * 淡出效果, 從左下角到右上角
     * FadeOutTRTiles::create(float duration, const cocos2d::Size &gridSize)
     */
    auto e14 = FadeOutTRTiles::create(3, Size(15, 10));
    
    
    /**
     * 淡出效果 , 從右上角到左下角
     * FadeOutBLTiles::create(float duration, const cocos2d::Size &gridSize)
     */
    Rect spRect = sp->getBoundingBox();
    float x = spRect.getMaxX() - spRect.getMinX();
    float y = spRect.getMaxY() - spRect.getMinY();
    auto e15 = FadeOutBLTiles::create(3, Size(x/8,y/8));
    
    
    /**
     * 摺疊效果 從下到上
     * FadeOutUpTiles::create(float duration, const cocos2d::Size &gridSize)
     */
    auto e16 = FadeOutUpTiles::create(3, Size(x/3, y/3));
    
    
    /**
     * 摺疊效果 從上到下
     * FadeOutDownTiles::create(float duration, const cocos2d::Size &gridSize)
     */
    auto e17 = FadeOutDownTiles::create(3, Size(15, 10));
    
    
    /**
     * 方塊消失特效
     * TurnOffTiles::create(float duration, const cocos2d::Size &gridSize)
     */
    auto e18 = TurnOffTiles::create(3, Size(15, 10));
    

    /**
     * 跳動的方格特效
     * JumpTiles3D::create(float duration, const cocos2d::Size &gridSize, unsigned int numberOfJumps, float amplitude)
     * numberOfJumps : 跳動的次數
     * amplitude : 頻率
     */
    auto e19 = JumpTiles3D::create(3, Size(15, 10), 3, 50);
    
    
    /**
     * 分多行消失特效效
     * SplitRows::create(float duration, unsigned int rows)
     * rows : 行數
     */
    auto e20 = SplitRows::create(3, 10);
    
    
    /**
     * 分多列消失特效
     * SplitCols::create(float duration, unsigned int cols)
     * cols : 列數
     */
    auto e21 = SplitCols::create(3, 10);
    
    
    /**
     * 3D翻頁特效
     * PageTurn3D::create(float duration, const cocos2d::Size &gridSize)
     */
    auto e22 = PageTurn3D::create(3, Size(15, 10));
    
    
    nodeGrid->runAction(e22);


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