this->scheduleOnce(schedule_selector(SelectGameScene::startGameCallback),this, 0.0f, false);
我收到一个错误:必须调用对非静态成员函数的引用。
void startGameCallback(float dt); //in h file
void SelectGameScene::startGameCallback(float dt)
{
Director::getInstance()->replaceScene(TransitionFade::create(TRANSITION_TIME, GameScene::createScene()));
}
在哪里
#define CC_SCHEDULE_SELECTOR(_SELECTOR) static_cast<cocos2d::SEL_SCHEDULE>(&_SELECTOR)
typedef void (Ref::*SEL_SCHEDULE)(float);
我在使用 c++11 标准和 cococ2d-x ver4.0 库的 XCode 上遇到了这个错误。
更新:我试过这段代码
this->scheduleOnce(schedule_selector(&SelectGameScene::startGameCallback),this, 0.0f, false);
我收到一个错误 Use of undeclared identifier 'schedule_selector'
Update2我发现了问题。我通过静态方法 createScene 创建了这个类。
class SelectGameScene : public cocos2d::Layer
{
public:
static cocos2d::Scene* createScene();
}