cocos2dx 动画 二(iOS)

7.Bezier曲线

需要ccBezierConfig结构体,设置2个控制点和一个结束点

1 ccBezierConfig bc;
2 bc.controlPoint_1 = Vec2(400,400);
3 bc.controlPoint_2 = Vec2(800,200);
4 bc.endPosition = Vec2(900,300);
5         
6 BezierTo *bz = BezierTo::create(2.0, bc);
7         
8 spt->runAction(bz);

8.控制动画速度变化

EaseSineIn由慢到快

EaseSineOut由快到慢 刹车效果

EaseSineInOut由慢到快再到慢

以MoveTo匀速为例 用EaseSineIn包装

1 MoveTo *to = MoveTo::create(2, Vec2(700,500));
2 EaseSineIn *in = EaseSineIn::create(to);
3 spt->runAction(in);

9.闪烁动画

第一参数:时间

第二参数:次数

1 Blink *bl = Blink::create(2, 5);
2 spt->runAction(bl);

10.Sequence (动画序列,精灵需要顺序执行不同动画)

1 MoveTo *mt = MoveTo::create(2, Vec2(600,300));
2 DelayTime *dt = DelayTime::create(2);
3 Blink *bl = Blink::create(2, 5);
4 Sequence *sq = Sequence::create(mt,dt,bl, NULL);
5 spt->runAction(sq);

 

11.进度条动画

 1         Sprite *sp1 = Sprite::create("dark.jpg");
 2         sp1->setPosition(Vec2(300,300));
 3         this->addChild(sp1);
 4         
 5         Sprite *sp2 = Sprite::create("light.jpg");
 6        
 7         ProgressTimer *timer = ProgressTimer::create(sp2);
 8         timer->setPosition(Vec2(300,300));
 9         this->addChild(timer);
10         
11         timer->setType(ProgressTimer::Type::BAR);
12         timer->setMidpoint(Vec2(0, 0));
13         timer->setBarChangeRate(Vec2(1,0));
14         
15         ProgressTo *pt = ProgressTo::create(2, 100);
16         timer->runAction(pt);

12.并行动画(多个动画并发执行)

 1         Sprite *sp1 = Sprite::create("pean.jpg");
 2         sp1->setPosition(Vec2(300,300));
 3         this->addChild(sp1);
 4         
 5         MoveTo *mv = MoveTo::create(2, Vec2(700,300));
 6         RotateBy *rb = RotateBy::create(2, 3600);
 7         
 8         Spawn *sp = Spawn::create(mv,rb, NULL);
 9         
10         sp1->runAction(sp);

最后一个:CallFunc (回调)

 1         Sprite *sp1 = Sprite::create("pean.jpg");
 2         sp1->setPosition(Vec2(300,300));
 3         this->addChild(sp1);
 4         
 5         MoveTo *mv = MoveTo::create(2, Vec2(700,300));
 6         RotateBy *rb = RotateBy::create(2, 3600);
 7         
 8         Spawn *sp = Spawn::create(mv,rb, NULL);
 9         
10         CallFunc *cf = CallFunc::create([&](void)
11                                         {
12                                             CCLOG("动画完");
13                                         });
14         Sequence *sq = Sequence::create(sp,cf, NULL);
15         sp1->runAction(sq);

 

转载于:https://www.cnblogs.com/wanyongjian/p/5061943.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值