//To绝对 By相对;
CCSprite* sprite=[CCSprite spriteWithFile:@"add1.png"];
sprite.position=ccp(70, 50);
[self addChild:sprite];
移动:
CCMoveTo* moveTo=[CCMoveTo actionWithDuration:2 position:ccp(200, 300)];
//直线移动到ccp(200,300)
CCMoveBy* moveBy=[CCMoveBy actionWithDuration:2 position:ccp(200, 200)];
//直线移动;在原来sprite的position基础上,坐标加(200,300),例如sprite.position=ccp(70,50) moveby后移动 到坐标(270,250)
CCJumpTo* jumpTo=[CCJumpTo actionWithDuration:2 position:ccp(200, 200) height:50 jumps:5];
//跳跃式的移动到ccp(200,200)height:调高50 jumps:跳5次;
CCJumpBy* jumpBy=[CCJumpBy actionWithDuration:2 position:ccp(200, 200) height:50 jumps:5];
//跳跃式的移动到sprite.position+ccp(200,200)height:调高50 jumps:跳5次;
贝塞尔:
ccBezierConfig bezier; //ccBezierConfig就是个结构体,包含贝塞尔运动的所需的三个点
bezier.controlPoint_1 = ccp(0,300);
bezier.controlPoint_2=ccp(400, 200);
bezier.endPosition=ccp(400, 0); //结束点[落地点]
CCBezierBy* bezierBy=[CCBezierBy actionWithDuration:4 bezier:bezier];
CCBezierTo* bezierTo=[CCBezierTo actionWithDuration:4 bezier:bezier];
//ccBezierBy 和ccBezierTo的区别跟ccmoveTo和ccmoveBy的区别差不多
放大&&缩小:
CCScaleTo* scaleTo=[CCScaleTo actionWithDuration:2 scale:3.0];
CCScaleTo* scaleTo1=[CCScaleTo actionWithDuration:2 scale:1.0f];
//[sprite runAction:[CCSequence actions:scaleTo,scaleTo1,nil]];
//sprite 放大了几倍?先放大3倍,后又在最开始的基本上放大了1倍,结果是放大了一倍;若把sacaleTo1类型改为CCScaleBy 。则放大三倍;
旋转角度:
CRotateTo* rotateTo=[CCRotateTo actionWithDuration:2 angle:90];
//sprite先旋转90度;[《=180逆时针旋转,》=180顺时针旋转]
CCRotateTo* rotateTo1=[CCRotateTo actionWithDuration:2 angle:0];
//然后执行rotateTo1,sprite在最开始的位置的基础上旋转了0度,屏幕显示旋转了0度;把rotateTo1类型改为CCRotateBy,旋转90度;
//[sprite runAction:[CCSequence actions:rotateTo,rotateTo1,nil]];
闪烁:
CCBlink* blink=[CCBlink actionWithDuration:3 blinks:6];
//三秒闪6下;
颜色变化:
CCTintTo* tintTo=[CCTintTo actionWithDuration:2 red:255 green:20 blue:20];
//颜色变化
CCTintBy* tintBy=[CCTintBy actionWithDuration:2 red:255 green:20 blue:20];
CCFadeTo* fadeTo=[CCFadeTo actionWithDuration:2 opacity:255];
//[opoacity数值在0-255]之间,数值越大越亮;
CCFadeIn* fadeIN=[CCFadeIn actionWithDuration:2];
//从无到有;
CCFadeOut* fadeOut=[CCFadeOut actionWithDuration:2];
//从有到无;
速度变化:
CCEaseIn* easeIn=[CCEaseIn actionWithAction:moveTo rate:2];
//rate:加速度
//反动作:CCReverse 反向执行,xxto一般不支持,xxby一般支持;
// CCEaseAction和CCSpeed:
// EaseIn 由慢至快。
// EaseOut 由快至慢
// EaseInOut 由慢至快再由快至慢。
// EaseSineIn 由慢至快
// EaseSineOut 由快至慢
// EaseSineInOut 由慢至快再由快至慢。
// EaseExponentialIn 由慢至极快。
// EaseExponentialOut 由极快至慢。
// EaseExponentialInOut 由慢至极快再由极快至慢。
// Speed 人工设定速度,还可通过 SetSpeed 不断调整。
延迟:
// CCDelayTime 延迟执行动作序列中在CCDdelayTime后边的动作;
即时动作:
CCActionTween* tween=[CCActionTween actionWithDuration:2 key:@"opacity" from:0 to:180];
//当需要改变某个sprite的某个属性时;Key:要改变的属性名 上句的意思:在2秒时间里,sprite的opacity属性值从0变到180
//CCCallFunc是执行对应的回调方法,其中回调方法不可带参数。
//CCCallFuncN多带一个参数,而参数本身是动作Aciton本身。就像UIButton那样,我们可以
//@selector(btnUpInside:),带的参数就是UIButton本身。
//CCCallFuncND带2个参数,一个是动作Action本身,一个是你自己定义的回调函数的参数。(参数可以是个常量也可以是一个指针)。
CCCallFuncND* call=[CCCallFuncND actionWithTarget:self selector:@selector(out:data:) data:(int*)2];
//data:后边的是回调函数的参数;
[sprite runAction:call];
同步:
Spawn Spawn作用就是同时并列执行若干个动作,但要求动作都必须是可以同时执行的。比如:移动式翻转、变色、变大小等。需要特别注意的是,同步执行最后的完成时间由基本动作中用时最大者决定。
CCSpawn* spawn=[CCSpawn actions:moveTo,call,nil];
//移动的时候同时执行函数回调;
动作执行多次:
CCRepeat* repeat=[CCRepeat actionWithAction:moveBy times:3];
//执行moveBy三次;
动作一直执行:
CCRepeatForever* repeatForever=[CCRepeatForever actionWithAction:moveBy];
//一直执行动作moveBy,也就是一直移动;
//CCRepeatForever不能和CCScene动作序列结合使用;