如何通过命名空间调用非静态方法
How to call a non-static method through namespace
我不是很明白GameScene::onTime。 onTime 不是静态方法。
1.DoesGameScene::onTimereturn一个函数指针?
2.Is 可以这样写 this->onTime(1.0f); ?
void GameScene::createGameInterface() {
this->schedule(schedule_selector(GameScene::onTime), 1.0f);
}
void GameScene::onTime(float dt)
{
if (isPaused)
return;
sec++;
timer_lbl->setString(Utils::secondsToTimeString((int)sec));
}
在哪里
typedef void (Ref::*SEL_SCHEDULE)(float);
#define CC_SCHEDULE_SELECTOR(_SELECTOR) static_cast<cocos2d::SEL_SCHEDULE>(&_SELECTOR)
void Node::schedule(SEL_SCHEDULE selector)
{
this->schedule(selector, 0.0f, CC_REPEAT_FOREVER, 0.0f);
}
从名称来看,代码正在安排某个计时器上的函数调用。
GameScene::onTime
是一个成员函数指针,尽管在 C++ 中完全正确,它应该拼写为 &GameScene::onTime
(即显式包含地址获取运算符)。
this->onTime(1.0f)
会改变代码的含义,因为它会同步调用 onTime
,而不是稍后异步安排调用。
我不是很明白GameScene::onTime。 onTime 不是静态方法。
1.DoesGameScene::onTimereturn一个函数指针?
2.Is 可以这样写 this->onTime(1.0f); ?
void GameScene::createGameInterface() {
this->schedule(schedule_selector(GameScene::onTime), 1.0f);
}
void GameScene::onTime(float dt)
{
if (isPaused)
return;
sec++;
timer_lbl->setString(Utils::secondsToTimeString((int)sec));
}
在哪里
typedef void (Ref::*SEL_SCHEDULE)(float);
#define CC_SCHEDULE_SELECTOR(_SELECTOR) static_cast<cocos2d::SEL_SCHEDULE>(&_SELECTOR)
void Node::schedule(SEL_SCHEDULE selector)
{
this->schedule(selector, 0.0f, CC_REPEAT_FOREVER, 0.0f);
}
从名称来看,代码正在安排某个计时器上的函数调用。
GameScene::onTime
是一个成员函数指针,尽管在 C++ 中完全正确,它应该拼写为&GameScene::onTime
(即显式包含地址获取运算符)。this->onTime(1.0f)
会改变代码的含义,因为它会同步调用onTime
,而不是稍后异步安排调用。