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);