首先我会在看到代码之前解释我想要做什么,用户可以点击 PLAY 按钮,点击后会弹出菜单, 菜单包含2个 MenuItemSprite ,用于与机器人或朋友一起玩,对于 MenuItemImage ,它会显示一个小的背景 2 MenuItemSprite 。
问题是,当我想点击菜单中的MenuItemSprite时,什么也没发生,但是当我设置启用背景 false 时,一切都没关系问题,但我不想要这个解决方案,因为我有另一个背景(几乎透明)。如果用户点击此背景,他可以隐藏自动菜单,所以我说设置启用背景为假它会给出另一个问题 conflit 背景(窗口)和背景(菜单)之间。
代码:
//Background (Scene)
background=Sprite::create(BACKGROUND);
background->setPosition(SonarCocosHelper::UI::GetScreenCenter());
background->setOpacity(0);
this->addChild(background,1);
//Background Menu
MenuItemImage * overlayWindowItem=MenuItemImage::create(GAME_OVER_WINDOW,GAME_OVER_WINDOW,GAME_OVER_WINDOW,NULL);
//overlayWindowItem->setEnabled(false);
//FRIEND ITEM
MenuItemSprite * friendItem=MenuItemSprite::create(Sprite::create(FRIEND_BUTTON), Sprite::create(FRIEND_BUTTON),CC_CALLBACK_1(MenuScene::goToPlay,this));
friendItem->setTag(PLAY_WITH_FRIEND);
friendItem->setPosition(Vec2(-overlayWindowItem->getContentSize().width/4,friendItem->getPositionY()));
//BOT ITEM
MenuItemSprite * botItem=MenuItemSprite::create(Sprite::create(BOT_BUTTON), Sprite::create(BOT_BUTTON),CC_CALLBACK_1(MenuScene::goToPlay,this));
botItem->setTag(PLAY_WITH_BOT);
botItem->setPosition(Vec2(overlayWindowItem->getContentSize().width/4,botItem->getPositionY()));
//menu
menu=Menu::create(overlayWindowItem,friendItem,botItem,NULL);
menu->setPosition(Vec2(SonarCocosHelper::UI::GetScreenCenter().x,SonarCocosHelper::UI::GetScreenCenter().y+screenSize.height));
this->addChild(menu,1);
如何避免在MenuItemImage和&之间混淆MenuItemSprite,我想点击MenuItemSprite,MenuItemImage只是一个背景。
谢谢,
答案 0 :(得分:1)
正如我在您的代码中看到的,为什么要将overlayWindowItem作为MenuItemImage?您没有调用任何函数(在代码中设置为NULL)。 只需将GAME_OVER_WINDOW作为精灵。如果我说错了,请纠正我。