关于动画的各种操作,总结一下以便以后复习查找。
内容简要:
1、瞬时动作2、延时动作
5、速度变化6、函数调用 7、创建动作动画8、控制动画帧的速度
原文地址:
----------------------------------------------------------------------------------------------------------------------------------------
瞬时动作:瞬时动作的基类是InstantAction
1、放置位置2、隐藏
3、显示
(效果类似亍 [node
他动作形成一个连续动作)
4、可见切换
延时动作 :延时动作的基类是CCIntervalAction
XxxxTo: 意味着运劢到指定癿位置。
XxxxBy:意味着运劢到按照指定癿x、y增量癿位置。(x、y可以是负值)
1、移动到 – CCMoveTo
2、移动– CCMoveBy
3、跳跃到 – CCJumpTo 设置终点位置和跳跃癿高度和次数。
4、跳跃 – CCJumpBy
5、贝塞尔 – CCBezierBy 支持3次贝塞尔曲线:P0-起点,P1-起点切线方向,P2-终 点切线方向,P3-终点。
6、放大到 – CCScaleTo 设置放大倍数,是浮点型。
7、放大 – CCScaleBy
8、旋转到 – CCRotateTo
9、旋转 – CCRotateBy
10、闪烁 – CCBlink 设定闪烁次数
11、色调变化到 – CCTintTo
12、色调变换 – CCTintBy
13、变暗到 – CCFadeTo
14、由无变亮 – CCFadeIn
15、由亮变无 – CCFadeOut
组合动作 :
1、序列-CCSequence
// 创建5个劢作
2、同步-Spawn
3、重复有限次数 -Repeate
4、反动作-Reverse
反动作就是反向(逆向)执行某个动作,支持针对动作序列癿反劢作序列。反动作
不是一个与门的类,而是CCFiniteAction引入的一个接口。不是所有的类都支持
反动作,XxxxTo类通常不支持反动作,XxxxBy类通常支持。
id ac1 = [CCMoveBy actionWithDuration:2 position:ccp(190,220)];
// 创建某个动作的反动作。
id ac2 = [ac1 reverse];
[sprite runAction:[CCRepeat actionWithAction:[CCSequence actions:ac1,
动画 -Animation
CCAnimation *animation = [AtlasAnimation animationWithName:@"flight"
无限重复 - RepeatForever
// 将该动画作为精灵的本征动画,一直运行。
速度变化
1、EaseIn 由慢至快。
2、EaseOut 由快至慢
3、EaseInOut 由慢至快再由快至慢。
4、EaseSineIn 由慢至快。
5、EaseSineOut 由快至慢
6、EaseSineInOut 由慢至快再由快至慢。
7、EaseExponentialIn 由慢至极快。
8、EaseExponentialOut 由极快至慢。
9、EaseExponentialInOut 由慢至极快再由极快至慢。
10、Speed 人工设定速度,还可通过SetSpeed不断调整。
延时动作 - Delay
id ac1 = [CCMoveBy actionWithDuration:2 position:ccp(200, 200)];
id ac2 = [ac1 reverse];
// 实现一个等待间歇
[sprite
函数调用
1、带对象参数
id acf = [CallFuncN actionWithTarget:self
- (void) CallBack2:(id)sender;
2、带对象、数据参数
id acf = [CCCallFuncND actionWithTarget:self
-(void) CallBack3:(id)sender data:(void*)data;
创建动作
1、利用文件名
CCAnimation*anim=[CCAnimationanimationWith
CCAnimate* animate = [CCAnimate actionWithAnimation:anim];
CCSequence *seq = [CCSequence actions:animate,nil];
CCRepeatForever* repeat = [CCRepeatForever actionWithAction:seq];
[sprite runAction:repeat];
2、利用缓存
[[CCSpriteFrameCache sharedSpriteFrameCache]
anim=[CCAnimation animationWithFrame:@"Jun" frameCount:12 delay:0.1];
animate = [CCAnimate actionWithAnimation:anim];
seq = [CCSequence actions:animate,nil];
repeat = [CCRepeatForever actionWithAction:seq];
[sprite runAction:repeat];
控制动作的速度
1、创建
[[CCSpriteFrameCache sharedSpriteFrameCache]
CCSprite*sprite=[CCSprite spriteWithSpriteFrameNam
sprite.position=ccp(200,200);
[self addChild:sprite];
CCAnimation*anim=[CCAnimation animationWithFrame:@"Jun" frameCount:12
CCAnimate* animate = [CCAnimate actionWithAnimation:anim];
CCSequence *seq = [CCSequence actions:animate,nil];
//动作放入speed中
CCSpeed *speed =[CCSpeed actionWithAction:[CCRepeatForever
[speed setTag:66];
[Sprite runAction:speed];
2、改变
CCSpeed *speed=(CCSpeed*)[sprite getActionByTag:66];
[speed setSpeed:0.5];//放慢原有速度的0.5倍