求问,我的层级到底哪里错了

auto switchMap_Item = MenuItemToggle::createWithCallback(
	CC_CALLBACK_1(ScrollingBackground::switchMap, this),
	"1.png", "2.png", NULL);
switchMap_Item->setScale(2);
switchMap_Item->setPosition(100,100);
switchMap_Item->setName("switchMap_Item");
    switchMap_Item->setGlobalZOrder(this->getGlobalZOrder() + 5);

Menu* menu = Menu::create(switchMap_Item, NULL);
menu->setPosition(Vec2::ZERO);
menu->setName("menu");
addChild(menu);
menu->setGlobalZOrder(this->getGlobalZOrder() + 5);

local_switch = Sprite::create("AvgLayer/button_sort_descend.png");
local_switch->setScale(2);
local_switch->setPosition(100,100);
local_switch->setGlobalZOrder(this->getGlobalZOrder() + 3);
addChild(local_switch);

无论按钮的层级是在switchMap_Item上设置,还是menu上设置,设置的层级显示出来都是被精灵local_switch覆盖,请问我到底哪里错了?谢谢,感觉一直不会设置menu的层级,另外我需要用setGlobalZOrder,因为内容太多了,local会混乱,所以可以的话请不要规避他

先addChild(local_switch); 再addChild(menu);

我测试了下好像getGlobalZoOrder()只会返回0。那按照值的顺序不应该。

先添加的层级在下面,后添加的在上面,设置层级我一般使用setLocalZOrder,你试试:joy:

你好,亲测无用,谢谢解答:grin:

一个scene上有多个layer的时候根本记不住layer层级,此外,自己改用触摸碰到面积的方式代替了按钮。根据个人的经验总结,Menu这块做的很烂,bug也很多,比如MenuItemSprite或MenuItemLabel这些如果直接设置Sprite或者label的坐标,则按钮就失效了,没有任何理由。目前的解决方案就是cocos2dx里可以不用menu的地方都不要用。
当然这是个人的看法,也可能是我自己水平不够,如果有可以自如运用menu的人,还望不吝赐教

试啦,然并卵:joy:

此贴终结,没有人为错误,解决的办法就是别用cocos自己的Menu,做的太烂