#define CCCA(x) (x->copy()->autorelease())
CCActionInterval* move = CCMoveBy::create(3, ccp(VisibleRect::right().x-130,0));
CCActionInterval* move_back = move->reverse();
//EaseIn
CCActionInterval* move_ease_in = CCEaseIn::create((CCActionInterval*)(move->copy()->autorelease), 3.0f);
CCActionInterval* move_ease_in_back = move_ease_in->reverse();
//EaseOut
CCActionInterval* move_ease_out = CCEaseOut::create((CCActionInterval*)(move_back->copy()->autorelease()), 3.0f);
CCActionInterval* move_ease_out_back = move_ease_out->reverse();
//EaseInOut
CCActionInterval* move_ease_inout1 = CCEaseInOut::create((CCActionInterval*)(move->copy()->autorelease()), 0.65f);
CCActionInterval* move_ease_inout_back1 = move_ease_inout1->reverse();
//EaseExponentialIn
CCActionInterval* move_ease_in = CCEaseExponentialIn::create((CCActionInterval*)(move->copy()->autorelease()) );
CCActionInterval* move_ease_in_back = move_ease_in->reverse();
//EaseExponentialOut
CCActionInterval* move_ease_out = CCEaseExponentialOut::create((CCActionInterval*)(move->copy()->autorelease()) );
CCActionInterval* move_ease_out_back = move_ease_out->reverse();
//EaseExponentialInOut
CCActionInterval* move_ease = CCEaseExponentialInOut::create((CCActionInterval*)(move->copy()->autorelease()) );
CCActionInterval* move_ease_back = move_ease->reverse();
//EaseSineIn
CCActionInterval* move_ease_in = CCEaseSineIn::create((CCActionInterval*)(move->copy()->autorelease()) );
CCActionInterval* move_ease_in_back = move_ease_in->reverse();
//EaseSineOut
CCActionInterval* move_ease_out = CCEaseSineOut::create((CCActionInterval*)(move->copy()->autorelease()) );
CCActionInterval* move_ease_out_back = move_ease_out->reverse();
//EaseSineInOut
CCActionInterval* move_ease = CCEaseSineInOut::create((CCActionInterval*)(move->copy()->autorelease()) );
CCActionInterval* move_ease_back = move_ease->reverse();
//EaseElasticIn 弹簧变速效果
//EaseElasticOut
//EaseElasticInOut
//EaseBounceIn 弹跳变速效果
//EaseBounceOut
//EaseBounceInOut
//EaseBackIn
//EaseBackOut
//EaseBackInOut
//自动释放动作
//FiniteTimeAction瞬时动作,ActionInterval延时动作
CCFiniteTimeAction* seq1 = CCSequence::create(move, delay, move_back, CCCA(delay), NULL);
CCFiniteTimeAction* seq2 = CCSequence::create(move_ease_in, CCCA(delay), move_ease_in_back, CCCA(delay), NULL);
CCFiniteTimeAction* seq3 = CCSequence::create(move_ease_out, CCCA(delay), move_ease_out_back, CCCA(delay), NULL);
//Speed 变速效果
// rotate and jump
CCActionInterval *jump1 = CCJumpBy::create(4, ccp(-s.width+80, 0), 100, 4);
CCActionInterval *jump2 = jump1->reverse();
CCActionInterval *rot1 = CCRotateBy::create(4, 360*2);
CCActionInterval *rot2 = rot1->reverse();
CCFiniteTimeAction* seq3_1 = CCSequence::create(jump2, jump1, NULL);
CCFiniteTimeAction* seq3_2 = CCSequence::create( rot1, rot2, NULL);
CCFiniteTimeAction* spawn = CCSpawn::create(seq3_1, seq3_2, NULL);
CCSpeed* action = CCSpeed::create(CCRepeatForever::create((CCActionInterval*)spawn), 1.0f);
action->setTag(kTagAction1);
CCSpeed* action1 = (CCSpeed*)(m_grossini->getActionByTag(kTagAction1));
action1->setSpeed( CCRANDOM_0_1() * 2 );
cocos2d-x 变速动作
最新推荐文章于 2019-02-26 09:17:25 发布