转载:http://blog.youkuaiyun.com/qq_17749439/article/details/38016197
cocos2dx的特效
在引擎自带的Demo中EffectsTest中可以看到cocos2dx的特效
特效继承CCActionInterval类。
代码如下
- static std::string effectsList[] =
- {
- "Shaky3D",//创建一个3D晃动的效果
- "Waves3D",//创建一个3D波动效果
- "FlipX3D",//创建一个X轴3D反转特效
- "FlipY3D",//创建一个Y轴3D反转特效
- "Lens3D",//创建凸透镜特效
- "Ripple3D",//创建一个3D水波特效
- "Liquid",//创建一个液体特效
- "Waves",//创建一个波动特效
- "Twirl",//创建一个扭曲特效
- "ShakyTiles3D",//创建一个3D瓷砖晃动的效果
- "ShatteredTiles3D",//创建一个3D破碎瓷砖特效
- "ShuffleTiles",//瓷砖洗牌特效
- "FadeOutTRTiles",//从左下到右上部落格消失。
- "FadeOutBLTiles",//从右上到左下部落格消失。
- "FadeOutUpTiles",//从下到上折叠消失
- "FadeOutDownTiles",//从上到下折叠消失
- "TurnOffTiles",//方块消失
- "WavesTiles3D",//创建一个3D瓷砖波动效果
- "JumpTiles3D",//方格跳动
- "SplitRows",//多行消失特效(水平)
- "SplitCols",//多行消失特效(垂直)
- "PageTurn3D",//3D翻页效果
- };
- class Shaky3DDemo : public CCShaky3D
- {
- public:
- static CCActionInterval* create(float t)
- {
- //创建一个3D晃动的效果
- //CCShaky3D::create(时间,晃动网格大小,晃动范围,Z轴是否晃动);
- return CCShaky3D::create(t, CCSizeMake(15,10), 5, false);
- }
- };
- class Waves3DDemo : public CCWaves3D
- {
- public:
- static CCActionInterval* create(float t)
- {
- //创建一个3D波动效果
- //CCWaves3D::create(时间,晃动网格大小,波动速度,振幅);
- return CCWaves3D::create(t, CCSizeMake(15,10), 5, 40);
- }
- };
- class FlipX3DDemo : public CCFlipX3D
- {
- public:
- static CCActionInterval* create(float t)
- {
- //创建一个X轴3D反转特效
- //CCFlipX3D::create(时间);
- CCFlipX3D* flipx = CCFlipX3D::create(t);
- CCActionInterval* flipx_back = flipx->reverse();
- CCDelayTime* delay = CCDelayTime::create(2);
- return CCSequence::create(flipx, delay, flipx_back, NULL);
- }
- };
- class FlipY3DDemo : public CCFlipY3D
- {
- public:
- static CCActionInterval* create(float t)
- {
- //创建一个Y轴3D反转特效
- //CCFlipY3D::create(时间);
- CCFlipY3D* flipy = CCFlipY3D::create(t);
- CCActionInterval* flipy_back = flipy->reverse();
- CCDelayTime* delay = CCDelayTime::create(2);
- return CCSequence::create(flipy, delay, flipy_back, NULL);
- }
- };
- class Lens3DDemo : public CCLens3D
- {
- public:
- static CCActionInterval* create(float t)
- {
- CCSize size = CCDirector::sharedDirector()->getWinSize();
- //创建凸透镜特效
- //CCLens3D::create(时间,网格大小,圆心坐标,圆半径);
- return CCLens3D::create(t, CCSizeMake(15,10), ccp(size.width/2,size.height/2), 240);
- }
- };
- class Ripple3DDemo : public CCRipple3D
- {
- public:
- static CCActionInterval* create(float t)
- {
- CCSize size = CCDirector::sharedDirector()->getWinSize();
- //创建一个3D水波特效
- //CCRipple3D::create(时间,网格大小,坐标,半径,速度,振幅);
- return CCRipple3D::create(t, CCSizeMake(32,24), ccp(size.width/2,size.height/2), 240, 4, 160);
- }
- };
- class LiquidDemo : public CCLiquid
- {
- public:
- static CCActionInterval* create(float t)
- {
- //创建一个液体特效
- //CCLiquid::create(时间,网格大小,速度,振幅);
- return CCLiquid::create(t, CCSizeMake(16,12), 4, 20);
- }
- };
- class WavesDemo : public CCWaves
- {
- public:
- static CCActionInterval* create(float t)
- {
- //创建一个波动特效
- //CCWaves::create(时间,晃动网格大小,波动速度,振幅,是否水平波动,是否垂直波动);
- return CCWaves::create(t, CCSizeMake(16,12), 4, 20, true, true);
- }
- };
- class TwirlDemo : public CCTwirl
- {
- public:
- static CCActionInterval* create(float t)
- {
- CCSize size = CCDirector::sharedDirector()->getWinSize();
- //创建一个扭曲特效
- //CCTwirl::create(时间,网格大小,坐标,扭曲次数,振幅);
- return CCTwirl::create(t, CCSizeMake(12,8), ccp(size.width/2, size.height/2), 1, 2.5f);
- }
- };
- class ShakyTiles3DDemo : public CCShakyTiles3D
- {
- public:
- static CCActionInterval* create(float t)
- {
- //创建一个3D瓷砖晃动的效果
- //CCShakyTiles3D::create(时间,晃动网格大小,晃动范围,Z轴是否晃动);
- return CCShakyTiles3D::create(t, CCSizeMake(16,12), 5, false) ;
- }
- };
- class ShatteredTiles3DDemo : public CCShatteredTiles3D
- {
- public:
- static CCActionInterval* create(float t)
- {
- //创建一个3D破碎瓷砖特效
- //CCShatteredTiles3D::create(时间,晃动网格大小,晃动范围,Z轴是否晃动);
- return CCShatteredTiles3D::create(t, CCSizeMake(16,12), 5, false);
- }
- };
- class ShuffleTilesDemo : public CCShuffleTiles
- {
- public:
- static CCActionInterval* create(float t)
- {
- //瓷砖洗牌特效
- //CCShuffleTiles::create(时间,网格大小,随机数);
- CCShuffleTiles* shuffle = CCShuffleTiles::create(t, CCSizeMake(16,12), 25);
- CCActionInterval* shuffle_back = shuffle->reverse();
- CCDelayTime* delay = CCDelayTime::create(2);
- return CCSequence::create(shuffle, delay, shuffle_back, NULL);
- }
- };
- class FadeOutTRTilesDemo : public CCFadeOutTRTiles
- {
- public:
- static CCActionInterval* create(float t)
- {
- //从左下到右上部落格消失。
- //CCFadeOutTRTiles::create(时间,网格大小);
- CCFadeOutTRTiles* fadeout = CCFadeOutTRTiles::create(t, CCSizeMake(16,12));
- CCActionInterval* back = fadeout->reverse();
- CCDelayTime* delay = CCDelayTime::create(0.5f);
- return CCSequence::create(fadeout, delay, back, NULL);
- }
- };
- class FadeOutBLTilesDemo : public CCFadeOutBLTiles
- {
- public:
- static CCActionInterval* create(float t)
- {
- //从右上到左下部落格消失。
- //CCFadeOutBLTiles::create(时间,网格大小);
- CCFadeOutBLTiles* fadeout = CCFadeOutBLTiles::create(t, CCSizeMake(16,12));
- CCActionInterval* back = fadeout->reverse();
- CCDelayTime* delay = CCDelayTime::create(0.5f);
- return CCSequence::create(fadeout, delay, back, NULL);
- }
- };
- class FadeOutUpTilesDemo : public CCFadeOutUpTiles
- {
- public:
- static CCActionInterval* create(float t)
- {
- //从下到上折叠消失
- //CCFadeOutUpTiles::create(时间,网格大小);
- CCFadeOutUpTiles* fadeout = CCFadeOutUpTiles::create(t, CCSizeMake(16,12));
- CCActionInterval* back = fadeout->reverse();
- CCDelayTime* delay = CCDelayTime::create(0.5f);
- return CCSequence::create(fadeout, delay, back, NULL);
- }
- };
- class FadeOutDownTilesDemo : public CCFadeOutDownTiles
- {
- public:
- static CCActionInterval* create(float t)
- {
- //从上到下折叠消失
- //CCFadeOutDownTiles::create(时间,网格大小);
- CCFadeOutDownTiles* fadeout = CCFadeOutDownTiles::create(t, CCSizeMake(16,12));
- CCActionInterval* back = fadeout->reverse();
- CCDelayTime* delay = CCDelayTime::create(0.5f);
- return CCSequence::create(fadeout, delay, back, NULL);
- }
- };
- class TurnOffTilesDemo : public CCTurnOffTiles
- {
- public:
- static CCActionInterval* create(float t)
- {
- //方块消失
- //CCTurnOffTiles::create(时间,网格大小,随机数);
- CCTurnOffTiles* fadeout = CCTurnOffTiles::create(t, CCSizeMake(48,32), 25);
- CCActionInterval* back = fadeout->reverse();
- CCDelayTime* delay = CCDelayTime::create(0.5f);
- return CCSequence::create(fadeout, delay, back, NULL);
- }
- };
- class WavesTiles3DDemo : public CCWavesTiles3D
- {
- public:
- static CCActionInterval* create(float t)
- {
- //创建一个3D瓷砖波动效果
- //CCWavesTiles3D::create(时间,晃动网格大小,波动速度,振幅);
- return CCWavesTiles3D::create(t, CCSizeMake(15,10), 4, 120);
- }
- };
- class JumpTiles3DDemo : public CCJumpTiles3D
- {
- public:
- static CCActionInterval* create(float t)
- {
- //方格跳动
- //CCJumpTiles3D::create(时间,网格大小,次数,振幅);
- return CCJumpTiles3D::create(t, CCSizeMake(15,10), 2, 30);
- }
- };
- class SplitRowsDemo : public CCSplitRows
- {
- public:
- static CCActionInterval* create(float t)
- {
- //多行消失特效(水平)
- //CCSplitRows::create(时间,行数);
- return CCSplitRows::create(t, 9);
- }
- };
- class SplitColsDemo : public CCSplitCols
- {
- public:
- static CCActionInterval* create(float t)
- {
- //多行消失特效(垂直)
- //CCSplitCols::create(时间,行数);
- return CCSplitCols::create(t, 9);
- }
- };
- class PageTurn3DDemo : public CCPageTurn3D
- {
- public:
- static CCActionInterval* create(float t)
- {
- CCDirector::sharedDirector()->setDepthTest(true);
- //3D翻页效果
- //CCPageTurn3D::create(时间,网格大小);
- return CCPageTurn3D::create(t, CCSizeMake(15,10));
- }
- };
以下链接为大神对特效对整理:
http://blog.youkuaiyun.com/paea_gulang/article/details/10283655