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

标签 android cocos2d-iphone cocos2d-x cocos2d-android

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

相关文章:

objective-c - 无法解释的崩溃 iOS

ios - 使用 Cocos2d-x 打开游戏中心 UI

java - 握手后 SSLSocket getOutputStream() 阻塞

java - 警报对话框 - 如何实现“取消”和“确定”按钮

java - 将以句点分隔的字符串拆分为多个字符串

java - GRT 库,以及如何在 Android Studio 上导入 native 库

ios - Cocos2d V3 (Chipmunk) 中具有摩擦和限制的 PivotJoints

ios - 游戏中心 - 定位

cocos2d-x - CCApplication::getCurrentLanguage() 在 cocos2d-x 上获取 null

C++ 错误 No matching member function for call to addtoucheventlistener