在使用cocos2dx-3.x的过程中,可能会出现需要在update中传入不止float dt一个参数的情况,因为其底层使用的C++11的std::bind来实现的,因此可以使用以下的解决方案进行设计。
bool HelloWorld::init()
{
if ( !Layer::init() )
{
return false;
}
auto scheduler = Director::getInstance()->getScheduler();
int i = 10;
std::string name = "sssss";
scheduler->schedule(CC_CALLBACK_1(HelloWorld::update,this,&i,name),this,0.1f,-1,1,false,"hello");
return true;
}
//回调
void HelloWorld::update(float t,void * data,std::string name)
{
auto i = (int *)data;
log("%s",name.c_str());
log("%d",*i);
}
---------------------
作者:风之旅人9527
来源:CSDN
原文:https://blog.csdn.net/martinluthersu/article/details/50287353
版权声明:本文为博主原创文章,转载请附上博文链接!