在使用计时器sechedule时,发现编译器报出 无法从“void (__thiscall HelloWorld::* )(void)”转换为“cocos2d::SEL_SCHEDUL 错误,经过检查,发现是因为参数不对。
如:
this->schedule(schedule_selector(HelloWorld::ShowAttackRange), 5.0f);
。。。
void HelloWorld::ShowAttackRange(ccTime dt)
{
CCLOG("aaaa");
}
每5秒调用一次ShowAttackRange函数,此时会报出如题的错误。
解决方案:
只需在ShowAttackRange函数中将参数ccTime dt 更改为 float interval 即可。也可能因为版本的问题,导致代码不同,右键函数转到定义查看其参数是个很好的解决方法。