Cocos2d-特效动画

特效概念
特效是让精灵(CCSprite)执行某种特殊的效果。
其实,特效也是一种动画!因为,仔细查看各种特效类的继承方式,会发现:
特效类,继承自CCGrid3DAction,又继承自CCGridAction,又继承自CCActionInterval
可见,可以把特效归位于CCActionInterval动画系列。
但是,为什么要把特效与动画区分呢?因为,特效是基于网格属性来进行的。
如何区分动画与特效?简单的将,当使用到网格属性时,为特效。(先简单的,这么理解吧)
网格属性
网格,是将精灵切割成为指定块数的矩形小块。当执行特效的时候,特效就是以网格切割的每个小块做为单位来执行的。
网格切割的块数越多,那么执行特效的细腻度也就越细腻,特效就越酷炫;反之,越粗糙,越生硬。
如:ccg(100,100),将精灵切割成100*100的网格。

CCWaves 
 
        id effect = [CCSequence actions:[CCWaves actionWithWaves:10 amplitude:10horizontal:YES vertical:YES grid:ccg(100,100) duration:100], [CCStopGrid action],nil];
        [mySprite runAction:effect];

CCWaves3D
修改网格属性,产生类似3D的波动效果
id effectWaves3D = [CCWaves3D actionWithWaves:100 amplitude:100 grid:ccg(100,120)duration:5];
            [mySprite runAction:effectWaves3D];

等等,还有很多的CCXXX3D效果。
我打算无耻的直接Contrl+C,Contrl+V了,因为,相似度太高了,为了保持特效的完整性。呵呵~~
//    CCFlipX3D:通过更改节点对象的网格属性,让节点对象沿着水平方向产生三维翻转效果。需要注意的是,虽然这里提供了ccg参数,但默认情况下只能使用ccg(1,1)
        id effectFlipX3D = [CCFlipX3D actionWithSize:ccg(1,1duration:2];
        id effectFlipX3Dback =[effectFlipX3D reverse];
        [mySprite runAction:[CCSequence actions:effectFlipX3D,[CCDelayTimeactionWithDuration:2], effectFlipX3Dback,nil]];
        
        
        //    CCFlipY3D: 通过更改节点对象的网格属性,让节点对象沿着垂直方向产生三维翻转效果。
        id effectFlipY3D = [CCFlipY3D actionWithDuration:2];
        id effectFlipY3Dback = [effectFlipY3D reverse];
        [mySprite runAction:[CCSequence actions:effectFlipY3D,[CCDelayTimeactionWithDuration:2], effectFlipY3Dback, nil]];
        
        //    CCLens3D: 通过更改节点对象的网格属性,让节点对象产生类似镜面三维效果。
        id effectLens3D = [CCLens3D actionWithPosition:ccp(size.width/2,size.height/2)radius:100 grid:ccg(15,10duration:3];
        [mySprite runAction: effectLens3D];
        
        //    CCRipple3D: 通过更改节点对象的网格属性,让节点对象产生类似水面涟漪的三维波动效果。
        id effectRipple3D = [CCRipple3D actionWithPosition:ccp(size.width/2,size.height/2radius:240 waves:4 amplitude:160grid:ccg(32,24duration:15];
        [mySprite runAction:effectRipple3D];
        
        //    CCShaky3D: 通过更改节点对象的网格属性,让节点对象产生类似三维摇晃效果。
        id effectShaky3D = [CCShaky3D actionWithRange:5 shakeZ:YES grid:ccg(10,10)duration:3];
        [mySprite runAction:effectShaky3D];
        
        //    CCLiquid: 通过更改节点对象的网格属性,让节点对象产生类似液体流动的效果。
        id effectLiquid = [CCLiquid actionWithWaves:10 amplitude:22 grid:ccg(16,10)duration:5];
        [ball runAction:effectLiquid];
        
        //    CCTwirl: 通过更改节点对象的网格属性,让节点对象产生漩涡效果。
        id effectTwirl = [CCTwirl actionWithPosition:ccp(size.width/2, size.height/2)twirls:1 amplitude:2.5f grid:ccg(12,8duration:5];
        [ball runAction:effectTwirl];
        
        //    CCShatteredTiles3D:通过更改节点对象的网格属性,让节点对象及其瓦片产生类似粉碎的三维效果。
        id effectShatteredTiles3D = [CCShatteredTiles3D actionWithRange:5 shatterZ:YESgrid:ccg(100,12duration:5];
        [mySprite runAction:effectShatteredTiles3D];
        
        //    CCShakyTiles3D:通过更改节点对象的网格属性,让节点对象及其瓦片产生类似晃动的三维效果。
        id effectShakyTiles3D = [CCShakyTiles3D actionWithRange:5 shakeZ:YESgrid:ccg(16,12duration:5];
        [mySprite runAction:effectShakyTiles3D];
        
        //    CCShuffleTiles:通过更改节点对象的网格属性,让节点对象及其瓦片产生类似洗牌的效果。
        id effectShuffleTiles = [CCShuffleTiles actionWithSeed:25 grid:ccg(16,12)duration:3];
        id shuffleBack = [effectShuffleTiles reverse];
        id delay = [CCDelayTime actionWithDuration:2];
        [mySprite runAction:[CCSequence actions:effectShuffleTiles,delay,shuffleBack,nil]];
        
        //    CCFadeOutTRTiles: 通过更改节点对象的网格属性,让节点对象及其瓦片产生从左下角到右上角淡出的效果。
        id effectFadeOutTRTiles = [CCFadeOutTRTiles actionWithSize:ccg(16,12)duration:8];
        id fadeouttrBack = [effectFadeOutTRTiles reverse];
        id trDelay = [CCDelayTime actionWithDuration:2];
        [mySprite runAction:[CCSequenceactions:effectFadeOutTRTiles,trDelay,fadeouttrBack, nil]];
        
        //    CCFadeOutBLTiles: 通过更改节点对象的网格属性,让节点对象及其瓦片产生从右上角到左下角淡出的效果。
        id effectFadeOutBLTiles = [CCFadeOutBLTiles actionWithSize:ccg(16,12)duration:5];
        id fadeoutblBack = [effectFadeOutBLTiles reverse];
        id blDelay = [CCDelayTime actionWithDuration:2];
        [mySprite runAction:[CCSequenceactions:effectFadeOutBLTiles,blDelay,fadeoutblBack, nil]];
        
        //    CCFadeOutUpTiles:通过更改节点对象的网格属性,让节点对象及其瓦片产生自下而上淡出的效果。
        id effectFadeOutUpTiles = [CCFadeOutUpTiles actionWithSize:ccg(100,100)duration:5];
        id fadeoutupBack = [effectFadeOutUpTiles reverse];
        id upDelay = [CCDelayTime actionWithDuration:2];
        [mySprite runAction:[CCSequenceactions:effectFadeOutUpTiles,upDelay,fadeoutupBack, nil]];
        
        //    CCFadeOutDownTiles:通过更改节点对象的网格属性,让节点对象及其瓦片产生自上而下淡出的效果。
        id effectFadeOutDownTiles = [CCFadeOutDownTiles actionWithSize:ccg(10,10)duration:5];
        id fadeoutdownBack = [effectFadeOutDownTiles reverse];
        id downDelay = [CCDelayTime actionWithDuration:2];
        [mySprite runAction:[CCSequenceactions:effectFadeOutDownTiles,downDelay,fadeoutdownBack, nil]];
        
        
        //    CCTurnOffTiles:通过更改节点对象的网格属性,产生瓦片逐渐消失的效果。
        id effectTurnOffTiles = [CCTurnOffTiles actionWithSeed:5 grid:ccg(10,10)duration:5];
        id turnoffBack = [effectTurnOffTiles reverse];
        id turnoffDelay = [CCDelayTime actionWithDuration:2];
        [mySprite runAction:[CCSequenceactions:effectTurnOffTiles,turnoffDelay,turnoffBack, nil]];
        
        //    CCWavesTiles3D: 通过更改节点对象的网格属性,让节点对象及其瓦片产生类似三维波浪的效果。
        id effectWavesTiles3D = [CCWavesTiles3D actionWithWaves:10 amplitude:120grid:ccg(15,12duration:5];
        [ball runAction:effectWavesTiles3D];
        
        //    CCJumpTiles3D:通过更改节点对象的网格属性,瓦片产生跳动的三维效果。
        id effectJumpTiles3D = [CCJumpTiles3D actionWithJumps:10 amplitude:30grid:ccg(12,12duration:5];
        [mySprite runAction:effectJumpTiles3D];
        
        //    CCSplitRows:通过更改节点对象的网格属性,让节点对象产生分行分割并消失的效果。
        id effectSplitRows = [CCSplitRows actionWithRows:100 duration:5];
        [mySprite runAction:effectSplitRows];
        
        //    CCSplitCols:通过更改节点对象的网格属性,让节点对象产生分列分割并消失的效果。
        id effectSplitCols = [CCSplitCols actionWithCols:10 duration:5];
        [mySprite runAction:effectSplitCols];
        
        //    CCPageTurn3D:通过更改节点对象的网格属性,让节点对象产生三维翻页的效果。
        id effectPageTurn3D = [CCPageTurn3D actionWithSize:ccg(150,120duration:5];
        [mySprite runAction:effectPageTurn3D];


希望对你有所帮助!


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值