文章出自於 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);