【问题标题】:How to remove sprite after the completion on Animation?动画完成后如何删除精灵?
【发布时间】:2013-07-09 11:44:25
【问题描述】:

我正在使用 CCAnimation 类来使用具有多个 CCSprite 的动画。我想要的是:

" 动画完成后移除精灵 "

如果有人在这方面工作,请告诉我。我该怎么办。

【问题讨论】:

  • 如果我只有一个精灵,我可以为它应用 removeChid 方法,但在动画的情况下,我不会在它上面应用这个......那么,我用什么方法呢?跨度>

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


【解决方案1】:

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

这是销毁对象的简单方法 动画完成这在粒子中非常有用

【讨论】:

    【解决方案2】:

    假设m_action 是你的动画,m_sprite 是你的精灵节点。

    然后你可以创建一个CCSequence动作,在finally中加上一个CCCallFunc动作,就像下面的代码:

    CCSequence* seq = CCSequence::create(action,
                                         CCCallFunc::create(m_sprite, callfunc_selector(CCSprite::removeFromParent),
                                         NULL);
    m_sprite->runAction(seq);
    

    【讨论】:

      【解决方案3】:

      sprite_name->runAction(Sequence::create(ScaleTo::create(1, 0),RemoveSelf::create(), NULL));

      【讨论】:

      • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
      猜你喜欢
      • 2023-03-30
      • 2013-07-15
      • 2020-05-11
      • 1970-01-01
      • 2010-11-28
      • 1970-01-01
      • 2012-11-27
      • 1970-01-01
      • 2011-12-01
      相关资源
      最近更新 更多