android - 完成Animation后如何删除精灵?

原文 标签 android cocos2d-iphone cocos2d-x cocos2d-android

我使用ccanimation类对多个ccsprite使用动画。我想要的是:
“动画完成后移除精灵”
如果有人在做这个,请告诉我。我该怎么办。

最佳答案

我知道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);

就像前面用雪碧回答的那样。
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);

这是在
动画完成了这在粒子中非常有用

相关文章:

java - 将日期设置到标签

ios - 什么时候使用CC_CONTENT_SCALE_FACTOR()?

ios - CC UITouch不考虑第二触摸

android - Inter在Android中更改位图中的蓝色和红色通道

c++ - 获取与精灵的位置和旋转有关的位置偏移

android - 如何在Google地图中为clusterer中的标记设置我自己的图标

android - 如何从SD卡获取文件夹的完整路径? [关闭]

android - 如何检查ScrollView是否可滚动

ios - cocos2d v3覆盖清除

iphone - 将Xcode更新为5.1(5B130a)时,EAGLView.mm中出现错误“从指针投射到较小类型'int'的信息丢失”