做项目的时候,总是会碰到在一些回调里处理逻辑,有的时候,需要一些参数来进行对应操作。
如下,我创建一个精灵,让他执行一段移动的动作,在动作结束后,我想要将这个精灵释放掉
Sprite * cardSp = Sprite::create("ui/icGotPoker.png");
cardSp->setPosition(beginPos);
cardSp->setRotation(angel - 90);
this->addChild(cardSp);
//用std::bind将上面创建的cardSp绑定给GameLayer::playDealActionCallFunc的参数,这样,就可以在GameLayer::playDealActionCallFunc里以传入参数的方式拿到cardSp了
MoveTo * moveTo = MoveTo::create(0.1f, endPos);
CallFunc * func = CallFunc::create(std::bind(&GameLayer::playDealActionCallFunc, this, cardSp));
Sequence * seq = Sequence::create(moveTo, func, NULL);
cardSp->runAction(seq);
//下面是他的回调
void GameLayer::playDealActionCallFunc(Node * cardSp)
{
...
...
cardSp->removeFromParent();
}