void MotionStreakTest1::onEnter()
{
MotionStreakTest::onEnter();
CCSize s = CCDirector::sharedDirector()->getWinSize();
// the root object just rotates around
m_root = CCSprite::create(s_pPathR1);
addChild(m_root, 1);
m_root->setPosition(ccp(s.width/2, s.height/2));
// the target object is offset from root, and the streak is moved to follow it
m_target = CCSprite::create(s_pPathR1);
m_root->addChild(m_target);
m_target->setPosition(ccp(s.width/4, 0));
// create the streak object and add it to the scene
streak = CCMotionStreak::create(2, 3, 32, ccGREEN, s_streak);
addChild(streak);
// schedule an update on each frame so we can syncronize the streak with the target
schedule(schedule_selector(MotionStreakTest1::onUpdate));
CCActionInterval* a1 = CCRotateBy::create(2, 360);
CCAction* action1 = CCRepeatForever::create(a1);
CCActionInterval* motion = CCMoveBy::create(2, ccp(100,0) );
m_root->runAction( CCRepeatForever::create((CCActionInterval*)(CCSequence::create(motion, motion->reverse(), NULL)) ) );
m_root->runAction( action1 );
//最后的颜色会跟背景色一致,这样就达到逐渐消失的效果
CCActionInterval *colorAction = CCRepeatForever::create((CCActionInterval *)CCSequence::create(
CCTintTo::create(0.2f, 255, 0, 0),
CCTintTo::create(0.2f, 0, 255, 0),
CCTintTo::create(0.2f, 0, 0, 255),
CCTintTo::create(0.2f, 0, 255, 255),
CCTintTo::create(0.2f, 255, 255, 0),
CCTintTo::create(0.2f, 255, 0, 255),
CCTintTo::create(0.2f, 255, 255, 255),
NULL));
streak->runAction(colorAction);
}
void MotionStreakTest1::onUpdate(float delta)
{
//先获取精灵m_target左上角的坐标,然后赋值给streak,m_target的坐标一直在变化
streak->setPosition( m_target->convertToWorldSpace(CCPointZero) );
}
