【问题标题】:calling a function after delay in cocos2dxcocos2dx延迟后调用函数
【发布时间】:2015-01-23 15:05:45
【问题描述】:

尝试在延迟后运行函数 GoToGameOverScene(this)。我得到“应该被忽略的无效值”

// set up the time delay
DelayTime *delayAction = DelayTime::create(2.5f);
// perform the selector call
CallFunc *callSelectorAction = CallFunc::create(this, SEL_CallFunc(GoToGameOverScene(this)));
// run the action
this->runAction(Sequence::create(delayAction, callSelectorAction, NULL));

其他功能如下:

void GameScreen::GoToGameOverScene(cocos2d::Ref *pSender)
{
    auto scene = GameOver::createScene();

    Director::getInstance()->replaceScene(scene);
}

【问题讨论】:

  • 哪一行?这是确切的错误消息还是您转录的?很确定缺少“不”,如“无效值不被忽略”
  • 在这一行出现错误“CallFunc *callSelectorAction = CallFunc::create(this, SEL_CallFunc(GoToGameOverScene(this)));”,而忽略的 void 值是我得到的确切错误

标签: android cocos2d-x


【解决方案1】:

SpriteNM->runAction(Sequence::create(DelayTime::create(1.0),CallFunc::create(std::bind(&ClassNM::MethodNM, this,IfParameter)),NULL));

【讨论】:

  • 请补充说明
【解决方案2】:

改变这个

CallFunc *callSelectorAction = CallFunc::create(this, SEL_CallFunc(GoToGameOverScene(this)));

到

CallFunc *callSelectorAction = CallFunc::create(this, callfunc_selector(ClassName::GoToGameOverScene));

干杯...

【讨论】:

  • 已编译但无法运行,它说你的项目包含错误(cocos2d->cocos->base directory)
  • CallFunc *callSelectorAction = CallFunc::create(this, callfunc_selector(GameScreen::GoToGameOverScene));
  • 你用的是哪个版本的cocos2dx?
  • 如果您使用的是 cocos2dx 3.0,那么请检查这个 - stackoverflow.com/questions/21215804/…
【解决方案3】:

如果您使用的是 v 3.3,那么您必须以这种方式使用它:

CallFunc *callSelectorAction = CallFunc::create(this, CC_CALLBACK_1(ClassName:GoToGameOverScene,this));

Where , CC_CALLBACK_1 当你的函数有一个参数时使用。

【讨论】:

  • 如果没有参数怎么办
  • @Ajax-theMax CC_CALLBACK_0 这里 num 0 表示零参数.. 与 CC_CALLBACK_1 用于一个参数,CC_CALLBACK_2 用于 2 个参数相同。因此,当您没有参数时,您可以使用 CC_CALLBACK_0。
【解决方案4】:
this->runAction(Sequence::create(DelayTime::create(1.0),CallFunc::create(std::bind(&ClassName::MethodName, this,IfParameter)),NULL));

或

SpriteName->runAction(Sequence::create(DelayTime::create(1.0),CallFunc::create(std::bind(&ClassName::MethodName, this,IfParameter)),NULL));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-19
    • 2017-09-06
    • 1970-01-01
    • 2013-12-01
    • 1970-01-01
    相关资源
    最近更新 更多