複数の CCSprite でアニメーションを使用するために CCAnimation クラスを使用しています。私が欲しいのは:
「アニメーションが完了したら、スプライトを削除するだけです」
誰かがこれに取り組んでいる場合は、私に知らせてください. 私はそれのために何をすべきですか。
複数の CCSprite でアニメーションを使用するために CCAnimation クラスを使用しています。私が欲しいのは:
「アニメーションが完了したら、スプライトを削除するだけです」
誰かがこれに取り組んでいる場合は、私に知らせてください. 私はそれのために何をすべきですか。
私は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);
これは、アニメーションが完了した後にオブジェクトを破棄する簡単な方法です。これは、パーティクルで非常に便利です。
あなたm_action
のアニメーションであり、m_sprite
あなたがスプライトノードであるとします。
次に、次のコードのように、最後CCSequence
のアクションでアクションを作成できます。CCCallFunc
CCSequence* seq = CCSequence::create(action,
CCCallFunc::create(m_sprite, callfunc_selector(CCSprite::removeFromParent),
NULL);
m_sprite->runAction(seq);