gpt4 book ai didi

android - 动画完成后如何删除 Sprite ?

转载 作者:太空狗 更新时间:2023-10-29 16:05:10 28 4
gpt4 key购买 nike

我正在使用 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/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com