在使用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);
}