有这样一个需求,假设在主场景中,有金币和银币两种货币,级别为1级时,分别每分钟生产十个。
我在菜单场景中的开始游戏按钮中,发送了一条消息(该消息包含当前等级),然后跳转到游戏主场景(注意!菜单与主场景分别为两个场景,不是层!),准备接收该消息,显示正确的金币数量以及玩家所包含的其他信息(均由该消息所传送来的)。
下面是代码,求指教。谢谢!!
有这样一个需求,假设在主场景中,有金币和银币两种货币,级别为1级时,分别每分钟生产十个。
我在菜单场景中的开始游戏按钮中,发送了一条消息(该消息包含当前等级),然后跳转到游戏主场景(注意!菜单与主场景分别为两个场景,不是层!),准备接收该消息,显示正确的金币数量以及玩家所包含的其他信息(均由该消息所传送来的)。
下面是代码,求指教。谢谢!!
试了一下没任何问题
auto s1 = Scene::create();
Director::getInstance()->runWithScene(s1);
auto btn = MenuItemFont::create("change scene");
Director::getInstance()->getEventDispatcher()->addCustomEventListener("o_o", ](EventCustom* e){
CCLOG("recevie event-> %s, data-> %s ",e->getEventName().c_str(),(const char*)e->getUserData());
});
btn->initWithCallback(](Ref*){
auto s2 = Scene::create();
Director::getInstance()->replaceScene(s2);
Director::getInstance()->getEventDispatcher()->dispatchCustomEvent("o_o", (void*)&("llso"));
});
auto menu = Menu::create(btn, NULL);
s1->addChild(menu);
menu->setPosition(Vec2(300, 400));
对比一下看看咯
你这是几个文件阿
跟几个文件没关系,你这样写监听器不会马上被添加到列表里面,而是要等下一帧,所以是接收不到的。你可以提前把监听器添加好,或者把事件放到下一帧分发。