gpt4 book ai didi

call - Cocos2d-x Schedule不调用函数

转载 作者:行者123 更新时间:2023-12-01 17:44:55 27 4
gpt4 key购买 nike

这是非常简单的时间表代码。 AMS_移动继承的CCNode。

我按计划调用runAction()中的action()。但不调用 action()

当我直接调用action()时,这是正常的。

我想知道原因。请帮助我。

void AMS_Moving::runAction()
{
..
..
this->schedule(schedule_selector(AMS_Moving::action));
}

void AMS_Moving::action(ccTime dt)
{
..
}

最佳答案

我在 Cocos2dx-3.8 中遇到了类似的问题,试图在我正在开发的一个 Scene 中安排一个选择器。

我的故障代码是:

void GameScene::onEnter() {
this->scheduleOnce(CC_SCHEDULE_SELECTOR(GameScene::scheduledSelector), 3.0);
this->scheduleUpdate();
}

void GameScene::scheduledSelector(float dt) {
log("Scheduled selector called...");
}

void GameScene::update(float delta) {
log("update called...");
}

在这种情况下,scheduledSelectorupdate 都没有被调用。

我在 Cocos2dx Node 文档中找到了问题的解决方案:Node 的调度程序将不会开始调度更新,直到 Node调用其 resume 方法:

/**
* Resumes all scheduled selectors, actions and event listeners.
* This method is called internally by onEnter.
*/
virtual void resume(void);

我的缺点是我重写了 Node 的 onEnter 方法,而没有通过父类(super class)实现进行调用,因此调度程序从未收到开始更新的信号。修复我的 onEnter 方法:

void GameScene::onEnter() {
Node::onEnter();
this->scheduleOnce(CC_SCHEDULE_SELECTOR(GameScene::scheduledSelector), 3.0);
this->scheduleUpdate();
}

完成了工作,两个选择器都在正确的时间开始被调用。

关于call - Cocos2d-x Schedule不调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12384485/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com