【发布时间】:2020-02-05 16:18:13
【问题描述】:
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);
我收到错误使用未声明的标识符“schedule_selector”
Update2 我发现了问题。我通过静态方法 createScene 创建了这个类。
class SelectGameScene : public cocos2d::Layer
{
public:
static cocos2d::Scene* createScene();
}
【问题讨论】: