cocos2dx学习笔记(cocos2dx特效)

转载:http://blog.youkuaiyun.com/qq_17749439/article/details/38016197

cocos2dx的特效

在引擎自带的Demo中EffectsTest中可以看到cocos2dx的特效

特效继承CCActionInterval类。

代码如下

[cpp]  view plain copy
  1. static std::string effectsList[] =  
  2. {  
  3.     "Shaky3D",//创建一个3D晃动的效果  
  4.     "Waves3D",//创建一个3D波动效果  
  5.     "FlipX3D",//创建一个X轴3D反转特效  
  6.     "FlipY3D",//创建一个Y轴3D反转特效  
  7.     "Lens3D",//创建凸透镜特效  
  8.     "Ripple3D",//创建一个3D水波特效  
  9.     "Liquid",//创建一个液体特效  
  10.     "Waves",//创建一个波动特效  
  11.     "Twirl",//创建一个扭曲特效  
  12.     "ShakyTiles3D",//创建一个3D瓷砖晃动的效果  
  13.     "ShatteredTiles3D",//创建一个3D破碎瓷砖特效  
  14.     "ShuffleTiles",//瓷砖洗牌特效  
  15.     "FadeOutTRTiles",//从左下到右上部落格消失。  
  16.     "FadeOutBLTiles",//从右上到左下部落格消失。  
  17.     "FadeOutUpTiles",//从下到上折叠消失  
  18.     "FadeOutDownTiles",//从上到下折叠消失  
  19.     "TurnOffTiles",//方块消失  
  20.     "WavesTiles3D",//创建一个3D瓷砖波动效果  
  21.     "JumpTiles3D",//方格跳动  
  22.     "SplitRows",//多行消失特效(水平)  
  23.     "SplitCols",//多行消失特效(垂直)  
  24.     "PageTurn3D",//3D翻页效果  
  25. };   
  26.   
  27.   
  28. class Shaky3DDemo : public CCShaky3D   
  29. {  
  30. public:  
  31.     static CCActionInterval* create(float t)  
  32.     {  
  33.         //创建一个3D晃动的效果  
  34.         //CCShaky3D::create(时间,晃动网格大小,晃动范围,Z轴是否晃动);  
  35.         return CCShaky3D::create(t, CCSizeMake(15,10), 5, false);  
  36.     }  
  37. };  
  38.   
  39. class Waves3DDemo : public CCWaves3D   
  40. {  
  41. public:  
  42.     static CCActionInterval* create(float t)  
  43.     {  
  44.         //创建一个3D波动效果  
  45.         //CCWaves3D::create(时间,晃动网格大小,波动速度,振幅);  
  46.         return CCWaves3D::create(t, CCSizeMake(15,10), 5, 40);  
  47.     }  
  48. };  
  49.   
  50. class FlipX3DDemo : public CCFlipX3D   
  51. {  
  52. public:  
  53.     static CCActionInterval* create(float t)  
  54.     {  
  55.         //创建一个X轴3D反转特效  
  56.         //CCFlipX3D::create(时间);  
  57.         CCFlipX3D* flipx  = CCFlipX3D::create(t);  
  58.         CCActionInterval* flipx_back = flipx->reverse();  
  59.         CCDelayTime* delay = CCDelayTime::create(2);  
  60.           
  61.         return CCSequence::create(flipx, delay, flipx_back, NULL);  
  62.     }  
  63. };  
  64.   
  65. class FlipY3DDemo : public CCFlipY3D   
  66. {  
  67. public:  
  68.     static CCActionInterval* create(float t)  
  69.     {  
  70.         //创建一个Y轴3D反转特效  
  71.         //CCFlipY3D::create(时间);  
  72.         CCFlipY3D* flipy  = CCFlipY3D::create(t);  
  73.         CCActionInterval* flipy_back = flipy->reverse();  
  74.         CCDelayTime* delay = CCDelayTime::create(2);  
  75.           
  76.         return CCSequence::create(flipy, delay, flipy_back, NULL);  
  77.     }  
  78. };  
  79.   
  80. class Lens3DDemo : public CCLens3D   
  81. {  
  82. public:  
  83.     static CCActionInterval* create(float t)  
  84.     {  
  85.         CCSize size = CCDirector::sharedDirector()->getWinSize();  
  86.         //创建凸透镜特效  
  87.         //CCLens3D::create(时间,网格大小,圆心坐标,圆半径);  
  88.         return CCLens3D::create(t, CCSizeMake(15,10), ccp(size.width/2,size.height/2), 240);  
  89.     }  
  90. };  
  91.   
  92.   
  93. class Ripple3DDemo : public CCRipple3D   
  94. {  
  95. public:  
  96.     static CCActionInterval* create(float t)  
  97.     {  
  98.         CCSize size = CCDirector::sharedDirector()->getWinSize();  
  99.         //创建一个3D水波特效  
  100.         //CCRipple3D::create(时间,网格大小,坐标,半径,速度,振幅);  
  101.         return CCRipple3D::create(t, CCSizeMake(32,24), ccp(size.width/2,size.height/2), 240, 4, 160);  
  102.     }  
  103. };  
  104.   
  105.   
  106. class LiquidDemo : public CCLiquid  
  107. {  
  108. public:  
  109.     static CCActionInterval* create(float t)  
  110.     {  
  111.         //创建一个液体特效  
  112.         //CCLiquid::create(时间,网格大小,速度,振幅);  
  113.         return CCLiquid::create(t, CCSizeMake(16,12), 4, 20);   
  114.     }  
  115. };  
  116.   
  117.   
  118. class WavesDemo : public CCWaves   
  119. {  
  120. public:  
  121.     static CCActionInterval* create(float t)  
  122.     {  
  123.         //创建一个波动特效  
  124.         //CCWaves::create(时间,晃动网格大小,波动速度,振幅,是否水平波动,是否垂直波动);  
  125.         return CCWaves::create(t, CCSizeMake(16,12), 4, 20, truetrue);    
  126.     }  
  127. };  
  128.   
  129.   
  130. class TwirlDemo : public CCTwirl   
  131. {  
  132. public:  
  133.     static CCActionInterval* create(float t)  
  134.     {  
  135.         CCSize size = CCDirector::sharedDirector()->getWinSize();  
  136.         //创建一个扭曲特效  
  137.         //CCTwirl::create(时间,网格大小,坐标,扭曲次数,振幅);  
  138.         return CCTwirl::create(t, CCSizeMake(12,8), ccp(size.width/2, size.height/2), 1, 2.5f);  
  139.     }  
  140. };  
  141.   
  142.   
  143. class ShakyTiles3DDemo : public CCShakyTiles3D  
  144. {  
  145. public:  
  146.     static CCActionInterval* create(float t)  
  147.     {  
  148.         //创建一个3D瓷砖晃动的效果  
  149.         //CCShakyTiles3D::create(时间,晃动网格大小,晃动范围,Z轴是否晃动);  
  150.         return CCShakyTiles3D::create(t, CCSizeMake(16,12), 5, false) ;  
  151.     }  
  152. };  
  153.   
  154.   
  155. class ShatteredTiles3DDemo : public CCShatteredTiles3D  
  156. {  
  157. public:  
  158.     static CCActionInterval* create(float t)  
  159.     {  
  160.         //创建一个3D破碎瓷砖特效  
  161.         //CCShatteredTiles3D::create(时间,晃动网格大小,晃动范围,Z轴是否晃动);  
  162.         return CCShatteredTiles3D::create(t, CCSizeMake(16,12), 5, false);   
  163.     }  
  164. };  
  165.   
  166.   
  167. class ShuffleTilesDemo : public CCShuffleTiles  
  168. {  
  169. public:  
  170.     static CCActionInterval* create(float t)  
  171.     {  
  172.         //瓷砖洗牌特效  
  173.         //CCShuffleTiles::create(时间,网格大小,随机数);  
  174.         CCShuffleTiles* shuffle = CCShuffleTiles::create(t, CCSizeMake(16,12), 25);  
  175.         CCActionInterval* shuffle_back = shuffle->reverse();  
  176.         CCDelayTime* delay = CCDelayTime::create(2);  
  177.   
  178.         return CCSequence::create(shuffle, delay, shuffle_back, NULL);  
  179.     }  
  180. };  
  181.   
  182.   
  183. class FadeOutTRTilesDemo : public CCFadeOutTRTiles  
  184. {  
  185. public:  
  186.     static CCActionInterval* create(float t)  
  187.     {  
  188.         //从左下到右上部落格消失。  
  189.         //CCFadeOutTRTiles::create(时间,网格大小);  
  190.         CCFadeOutTRTiles* fadeout = CCFadeOutTRTiles::create(t, CCSizeMake(16,12));  
  191.         CCActionInterval* back = fadeout->reverse();  
  192.         CCDelayTime* delay = CCDelayTime::create(0.5f);  
  193.   
  194.         return CCSequence::create(fadeout, delay, back, NULL);  
  195.     }  
  196. };  
  197.   
  198.   
  199. class FadeOutBLTilesDemo : public CCFadeOutBLTiles  
  200. {  
  201. public:  
  202.     static CCActionInterval* create(float t)  
  203.     {  
  204.         //从右上到左下部落格消失。  
  205.         //CCFadeOutBLTiles::create(时间,网格大小);  
  206.         CCFadeOutBLTiles* fadeout = CCFadeOutBLTiles::create(t, CCSizeMake(16,12));  
  207.         CCActionInterval* back = fadeout->reverse();  
  208.         CCDelayTime* delay = CCDelayTime::create(0.5f);  
  209.   
  210.         return CCSequence::create(fadeout, delay, back, NULL);  
  211.     }  
  212. };  
  213.   
  214.   
  215. class FadeOutUpTilesDemo : public CCFadeOutUpTiles  
  216. {  
  217. public:  
  218.     static CCActionInterval* create(float t)  
  219.     {  
  220.         //从下到上折叠消失  
  221.         //CCFadeOutUpTiles::create(时间,网格大小);  
  222.         CCFadeOutUpTiles* fadeout = CCFadeOutUpTiles::create(t, CCSizeMake(16,12));  
  223.         CCActionInterval* back = fadeout->reverse();  
  224.         CCDelayTime* delay = CCDelayTime::create(0.5f);  
  225.   
  226.         return CCSequence::create(fadeout, delay, back, NULL);  
  227.     }  
  228. };  
  229.   
  230. class FadeOutDownTilesDemo : public CCFadeOutDownTiles  
  231. {  
  232. public:  
  233.     static CCActionInterval* create(float t)  
  234.     {  
  235.         //从上到下折叠消失  
  236.         //CCFadeOutDownTiles::create(时间,网格大小);  
  237.         CCFadeOutDownTiles* fadeout = CCFadeOutDownTiles::create(t, CCSizeMake(16,12));  
  238.         CCActionInterval* back = fadeout->reverse();  
  239.         CCDelayTime* delay = CCDelayTime::create(0.5f);  
  240.   
  241.         return CCSequence::create(fadeout, delay, back, NULL);  
  242.     }  
  243. };  
  244.   
  245. class TurnOffTilesDemo : public CCTurnOffTiles  
  246. {  
  247. public:  
  248.     static CCActionInterval* create(float t)  
  249.     {  
  250.         //方块消失  
  251.         //CCTurnOffTiles::create(时间,网格大小,随机数);  
  252.         CCTurnOffTiles* fadeout = CCTurnOffTiles::create(t, CCSizeMake(48,32), 25);  
  253.         CCActionInterval* back = fadeout->reverse();  
  254.         CCDelayTime* delay = CCDelayTime::create(0.5f);  
  255.   
  256.         return CCSequence::create(fadeout, delay, back, NULL);  
  257.     }  
  258. };  
  259.   
  260. class WavesTiles3DDemo : public CCWavesTiles3D  
  261. {  
  262. public:  
  263.     static CCActionInterval* create(float t)  
  264.     {  
  265.         //创建一个3D瓷砖波动效果  
  266.         //CCWavesTiles3D::create(时间,晃动网格大小,波动速度,振幅);  
  267.         return CCWavesTiles3D::create(t, CCSizeMake(15,10), 4, 120);   
  268.     }  
  269. };  
  270.   
  271. class JumpTiles3DDemo : public CCJumpTiles3D  
  272. {  
  273. public:  
  274.     static CCActionInterval* create(float t)  
  275.     {  
  276.         //方格跳动  
  277.         //CCJumpTiles3D::create(时间,网格大小,次数,振幅);  
  278.         return CCJumpTiles3D::create(t, CCSizeMake(15,10), 2, 30);  
  279.     }  
  280. };  
  281.   
  282. class SplitRowsDemo : public CCSplitRows  
  283. {  
  284. public:  
  285.     static CCActionInterval* create(float t)  
  286.     {  
  287.         //多行消失特效(水平)  
  288.         //CCSplitRows::create(时间,行数);  
  289.         return CCSplitRows::create(t, 9);   
  290.     }  
  291. };  
  292.   
  293. class SplitColsDemo : public CCSplitCols  
  294. {  
  295. public:  
  296.     static CCActionInterval* create(float t)  
  297.     {  
  298.         //多行消失特效(垂直)  
  299.         //CCSplitCols::create(时间,行数);  
  300.         return CCSplitCols::create(t, 9);   
  301.     }  
  302. };  
  303.   
  304. class PageTurn3DDemo : public CCPageTurn3D  
  305. {  
  306. public:  
  307.     static CCActionInterval* create(float t)  
  308.     {  
  309.           
  310.         CCDirector::sharedDirector()->setDepthTest(true);  
  311.         //3D翻页效果  
  312.         //CCPageTurn3D::create(时间,网格大小);  
  313.         return CCPageTurn3D::create(t, CCSizeMake(15,10));   
  314.     }  
  315. };  


在引擎中还有一个Demo为EffectAdvancedTest,里面为各个特效的组合。

以下链接为大神对特效对整理:

http://blog.youkuaiyun.com/paea_gulang/article/details/10283655


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值