我知道pktangyue 的解决方案有效,但我想添加一个新答案,因为 cocos2d-x V3.x 已弃用此方法,请阅读最终方式这样做更容易
Node *nodeSprite =(Node*)layer->getChildByName("BFL_Ready_Label");
MoveTo* animation = MoveTo::create(1.0f,Point(Director::getInstance()->getWinSize().width/2,Director::getInstance()->getWinSize().height*1.5));
CallFunc* animationDone = CallFunc::create(bind(&Node::removeFromParent,nodeSprite));
Sequence* sequence = Sequence::create(animation,animation,NULL);
node->runAction(Sequence);
和之前使用 Sprite 的答案一样。
MoveTo* animation = MoveTo::create(1.0f,Point(Director::getInstance()->getWinSize().width/2,Director::getInstance()->getWinSize().height*1.5));
CallFunc::create(bind(&Sprite::removeFromParent,m_sprite));
Sequence* sequence = Sequence::create(animation,animation,NULL);
m_sprite->runAction(sequence);
使用这个编译器不会告诉你正在使用不推荐使用的方法。我希望这会有用。
我更新了这个答案,因为有一个非常简单的方法可以做到这一点
创建序列时,只需添加 RemoveSelf::create RemoveSelf 这是一个动作,因此您可以将其添加到序列中,它会在动画完成后销毁精灵或节点。
Sequence* sequence = Sequence::create(animation,animation,RemoveSelf::Create(),NULL);
这是销毁对象的简单方法
动画完成这在粒子中非常有用