在运行一系列动作之后,我必须做同样的事情:我想从 bacthNode 中删除精灵,这样我的动画帧就不会在动画结束时出现在屏幕上,所以我必须将批处理节点传递给函数,并且这就是我实现它的方式:-
CCSequence *seq=CCSequence::createWithTwoActions(
CCAnimate::create(animation),
CCCallFuncO::create(
animation,
callfuncO_selector(GameLayer::animationReshuffleFinished),
(CCObject*)animBatchNode)
);
您需要的函数是 CCCallFuncO 而不是 ND,这里 O 代表 Object。
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);
}
请让我知道这是否符合您的目的。