写了个火箭效果的demo,用帧动画实现。炸弹,飞机的效果同理。其实炸弹可以用粒子实现的!效果应该更好!
void HelloWorld::menuTestCallback(Ref* pSender)
{
log("menuTestCallback");
// 音效
SimpleAudioEngine::getInstance()->playEffect("1_missile.wav");
// 创建一个精灵
Sprite* sprite = Sprite::create("game_trocket-hd.png", Rect(0, 0, 68, 250));
Size visibleSize = Director::getInstance()->getVisibleSize();
sprite->setPosition(Vec2(visibleSize.width / 2, 0));
this->addChild(sprite);
// 火箭效果
Animation* animation = Animation::create();
for (size_t i = 1; i <= 6; i++)
{
SpriteFrame *spriteFrame = SpriteFrame::create("game_trocket-hd.png", Rect(68*(i-1),0,68,250) );
animation->addSpriteFrame(spriteFrame);
}
animation->setDelayPerUnit(0.15f);
animation->setRestoreOriginalFrame(true);
Animate* action = Animate::create(animation);
MoveTo* move = MoveTo::create(0.9, Vec2(visibleSize.width / 2, visibleSize.height));
//注意:move和action是同时执行,执行完以后要销毁
sprite->runAction( Sequence::create(Spawn::create(move, action, NULL), RemoveSelf::create(true), NULL));
}