CGSize winSize = [[CCDirector sharedDirector] winSize];
CCSprite *playerSprite = (CCSprite*)[self getChildByTag:1];// 得到精灵
// CCMoveTo移动到ccp(x,y)。就是让精灵移动到特定的点。
id actionTo = [CCMoveTo actionWithDuration: 2 position:ccp(winSize.width/2, winSize.height/2)];
[playerSprite runAction:actionTo];// 让精灵执行动画
CCMoveBy动画
// 在指定的时间内,让精灵从原来的位置相对移动指定的像素。即:让精灵沿x轴移动0像素,沿y轴移动100像素。
id actionBy = [CCMoveBy actionWithDuration:2 position: ccp(0,100)];
[playerSprite runAction:actionBy];// 让精灵执行动画
// 在指定的时间内,让精灵从原来的位置跳转到ccp(300,300)位置,跳跃高度100,跳动次数:4
id actionJumpTo = [CCJumpTo actionWithDuration:2 position:ccp(300,300) height:100jumps:4];
[playerSprite runAction:actionJumpTo];
CCJumpBy动画
// 在指定的时间内,让精灵从原来的位置跳转指定的位移量ccp(0,300),即x轴位移0,y轴位移300,跳跃高度100,跳动次数:4
id actionJumpToBy = [CCJumpBy actionWithDuration:2 position:ccp(0,300) height:100jumps:4];
[playerSprite runAction:actionJumpToBy];
ccBezierConfig bezier;
bezier.controlPoint_1 = ccp(0, winSize.height/2);// 第一个点
bezier.controlPoint_2 = ccp(300, -winSize.height/2);// 第二个点
bezier.endPosition = ccp(300,100);// 终点
// 3秒钟完成该贝塞尔曲线
id bezierForward = [CCBezierTo actionWithDuration:3 bezier:bezier];
[playerSprite runAction:bezierForward];
ccBezierConfig bezier;
bezier.controlPoint_1 = ccp(0, winSize.height/2);// 第一个点
bezier.controlPoint_2 = ccp(300, -winSize.height/2);// 第二个点
bezier.endPosition = ccp(300,100);// 终点
// 3秒钟完成该贝塞尔曲线
id bezierForward = [CCBezierBy actionWithDuration:3 bezier:bezier];
[playerSprite runAction:bezierForward];
CCPlace动画
// 直接将精灵移动到指定的ccp(200,200)位置,这样主要作用可以配合其他动画,完成动画链
id actionPlace=[CCPlace actionWithPosition:ccp(200,200)];
[playerSprite runAction:actionPlace];
// 1.0为原始大小,小于1:为缩小;大于1:为放大
id actionScaleTo = [CCScaleTo actionWithDuration: 2 scale:0.5f];
[playerSprite runAction:actionScaleTo];
// 分别指定沿X轴和Y轴的放大或者缩小
id actionScaleTo_1 = [CCScaleTo actionWithDuration:2 scaleX:1 scaleY:2];
[playerSprite runAction:actionScaleTo_1];
id actionScaleBy = [CCScaleBy actionWithDuration:2 scaleX:1 scaleY:10];
[playerSprite runAction:actionScaleBy];
id actionScaleBy_1 = [CCScaleBy actionWithDuration:2 scaleX:5 scaleY:1];
[playerSprite runAction:actionScaleBy_1];
// 旋转:在指定的时间内(2s),旋转61度。
// 注意:小于180度:顺时针旋转;大于180度:逆时针旋转
id actionRotateTo = [CCRotateTo actionWithDuration:2 angle:61.0f];
[playerSprite runAction:actionRotateTo];
id actionRotateBy = [CCRotateBy actionWithDuration:2 angle:61.0f];
[playerSprite runAction:actionRotateBy];
// 显示精灵
id actionShow = [CCShow act
[playerSprite runAction:actionShow];
CCHide动画
// 隐藏精灵
id actionHide = [CCHide act
[playerSprite runAction:actionHide];
CCToggleVisibility动画
// 显示/隐藏 精灵
id actionToggleVisibility = [CCToggleVisibility act
[playerSprite runAction:actionToggleVisibility];
// 闪烁:在指定的时间(3s),闪烁指定次数(10次)
id actionBlink= [CCBlink actionWithDuration:3 blinks:10];
[playerSprite runAction:actionBlink];
// 透明度0~255.
// 淡入:在指定的时间内(1s),将透明度设置为255.
id actionFadeIn = [CCFadeIn actionWithDuration:1.0f];
[playerSprite runAction:actionFadeIn];
CCFadeOut
// 淡出:在指定的时间内(1s),将透明度设置为0.
id actionFadeOut = [CCFadeOut actionWithDuration:1.0f];
[playerSprite runAction:actionFadeOut];
CCFadeTo
// 指定透明度:在指定的时间内(1s),将透明度设置为指定值(200).
id actionFadeTo=[CCFadeTo actionWithDuration:1.0f opacity:200];
[playerSprite runAction:actionFadeTo];
// 在指定的时间内,指定相应的颜色
id actionTintTo= [CCTintTo actionWithDuration:2 red:255 green:0 blue:255];
[playerSprite runAction:actionTintTo];
CCTintBy
// 在指定的时间内,指定相应的颜色的偏移量
id actionTintBy = [CCTintBy actionWithDuration:2 red:-127 green:-255 blue:-127];
[playerSprite runAction:actionTintBy];
// 沿X轴翻转
id actionFlipX=[CCFlipX actionWithFlipX:YES];
[playerSprite runAction:actionFlipX];
CCFlipY
// 沿Y轴翻转
id actionFlipY=[CCFlipY actionWithFlipY:YES];
[playerSprite runAction:actionFlipY];
// 动画队列
id actionMoveBy = [CCMoveBy actionWithDuration:2 position:ccp(0,winSize.height/2)];// 移动动画
id actionBlink= [CCBlink actionWithDuration:3 blinks:10];
id actionMoveBy_back = [actionMoveBy reverse];// 得到某一动画的相反的动画效果
id actionBlink_back = [actionBlink reverse];
// 可以加N多的动画
id seq = [CCSequence actions:actionMoveBy, actionBlink,actionMoveBy_back,actionBlink_back, nil];
[playerSprite runAction:seq];
// CCSpawn让精灵的若干个动画,同时执行。
id actionMoveBy = [CCMoveBy actionWithDuration:2position:ccp(0,winSize.height/2)];// 移动动画
id actionBlink= [CCBlink actionWithDuration:3 blinks:10];
id actionSpawn=[CCSpawn actions:actionMoveBy,actionBlink, nil];
[playerSprite runAction:actionSpawn];
id actionMoveBy = [CCMoveBy actionWithDuration:2 position:ccp(0,50)];// 移动动画
id actionBlink= [CCBlink actionWithDuration:3 blinks:10];
id seq = [CCSequence actions:actionMoveBy, actionBlink, nil];
// CCRepeat让精灵重复执行某个动画若干次
[playerSprite runAction:[CCRepeat actionWithAction:seq times:5]];
// 让精灵一直执行某个动画(循环无数次)
[playerSprite runAction:[CCRepeatForever actionWithAction:seq]];
// CCEaseXXX 动画是一系列的特效动画,让原来的动画增加了些特效;以后可以慢慢研究
id actionMoveTo = [CCMoveTo actionWithDuration: 2 position:ccp(winSize.width/2, winSize.height/2)];
id actionScaleTo = [CCScaleTo actionWithDuration: 2 scale:2];
// CCEaseBounceOut特效
id actionEase=[CCEaseBounceOut actionWithAction:actionMoveTo];
id actionSeq=[CCSequence actions:actionEase,actionScaleTo,nil];
[playerSprite runAction:[CCRepeatForever actionWithAction:actionSeq]];
// 调用的Block,使用该Block,可以在动画执行完成后,做一些额外的操作:比如让精灵消失,重新定位,甚至是再执行某些额外的动画等等
id callback = [CCCallBlockN actionWithBlock:^(id sender){
CCSprite *sp = (CCSprite*)sender;
id actionScaleBy = [CCScaleBy actionWithDuration:2 scaleX:1scaleY:10];
[sp runAction:actionScaleBy];
}];
id actionSeq=[CCSequence actions:actionEase,actionScaleTo,callback,nil];
[playerSprite runAction:actionSeq];
CCDelayTime
id actionDelayTime= [CCDelayTime actionWithDuration:5];
id seq = [CCSequence actions:actionDelayTime, actionMoveTo,actionScaleTo, nil];
[playerSprite runAction:[CCRepeatForever actionWithAction:seq]];