Cocos2d-x3.8.1暂停与继续游戏
发表于2018-03-19
大多数游戏都有暂停游戏和继续游戏的功能,在Cocos2d-x中这个功能要怎么去实现,可以通过使用在CocosStudio中创建按钮控件然后在Cocos2d-x3.8.1版本中加载cbs文件来实现此功能。
暂停和继续游戏代码实现:
获取暂停按钮
auto pause=static_cast<Button*>(Helper::seekWidgetByName(static_cast<Widget*>(brand),"pause"));
触发点击事件
pause->addTouchEventListener([this](Ref* ref,Widget::TouchEventType type) { if (type==Widget::TouchEventType::ENDED) {
暂停游戏
this->onExit();
添加关闭提示窗口
auto menu=settingMenu::create(); //错误写法:this->addChirldren(settingMenu::create());由于this继承与LayerColor,onExit()已经暂停该图层
Director::getInstance()->getRunningScene()->addChild(menu);
//由于该图层为暂停的对象,该图层的场景其他图层并未被暂停,故可以先获取该场景,然后把提示窗口添加到该场景内 } });
//添加自定义事件
_eventDispatcher->addCustomEventListener("continueGame",[this](EventCustom* event)
{
//继续游戏
this->onEnter();
});
//在提示窗口中定义事件,类似于Qt中emit发射信号
Director::getInstance()->getEventDispatcher()->dispatchCustomEvent("continueGame");
