一連のアクションを実行した後、同じことをしなければなりませんでした。アニメーションが終了したときにアニメーション フレームが画面に表示されないように、bacthNode からスプライトを削除したかったので、バッチ ノードを関数に渡す必要がありました。これが私がそれを達成した方法です:-
CCSequence *seq=CCSequence::createWithTwoActions(
CCAnimate::create(animation),
CCCallFuncO::create(
animation,
callfuncO_selector(GameLayer::animationReshuffleFinished),
(CCObject*)animBatchNode)
);
必要な関数は、ND ではなく CCCallFuncO です。ここで O はオブジェクトを表します。
CCCallFuncO::create(
animation,
callfuncO_selector(GameLayer::animationReshuffleFinished),
(CCObject*)animBatchNode)
animation
私の CCAnimate オブジェクト
は、アニメーションがanimationReshuffleFinished
終了したときに呼び出されるクラス GameLayer のコールバック関数です。(CCObject*)animBatchNode)
関数 animationReshuffleFinished の引数です
ここに関数の定義があります
void GameLayer::animationReshuffleFinished(CCObject *sender){
CCSpriteBatchNode *animBatchNode = (CCSpriteBatchNode*) sender;
animBatchNode->cocos2d::CCNode::removeAllChildrenWithCleanup(true);
}
これがあなたの目的に役立つかどうか教えてください。