我正在使用 CCAnimation 类来使用具有多个 CCSprite 的动画。我想要的是:
"在动画完成后删除 Sprite "
如果有人在这方面工作,请告诉我。我应该为它做什么。
最佳答案
我知道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 它是一个 Action ,因此您可以将它添加到序列中,它会在动画完成后销毁 Sprite 或节点。
Sequence* sequence = Sequence::create(animation,animation,RemoveSelf::Create(),NULL);
这是在之后销毁对象的简单方法 动画完成这在粒子中非常有用
关于android - 动画完成后如何删除 Sprite ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17547404/