之前看到拖尾效果感觉挺酷炫的,但是网上很多教程说得并明了,现在我来个简单粗暴的,现在做了一个很菜的效果大家凑合看看,废话不多说,直接上代码:
首先创建一个主角:
bullt = CCSprite::create("blood.png");
bullt->setPosition(ccp(100,110));
this->addChild(bullt,2);
创建拖尾效果并且添加到屏幕:
m_streak = CCMotionStreak::create(2, 10,20, ccRED, "blood.png");
m_streak->setPosition(ccp(100,110));
this->addChild(m_streak,1);
添加渐变颜色:
// //创建一个无限循环的动画序列,动画序列为7个变色动画,哪个结点使用它就会不断的变色。
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));
//让拖尾运行这个变色动画序列。
m_streak->runAction(colorAction);
名就叫拖尾效果,所以这个效果如果不移动的话是看不见的,现在我们在update里面移动它:
void HelloWorld::update(float delta)
{
bullt->setPosition(ccp(bullt->getPositionX(),bullt->getPositionY()+1));
m_streak->setPosition(bullt->getPosition());
}
ok,就这么简单
效果图: