我正在cocos2d-z中开发一个应用程序,并使用Buttons创建我的菜单,但是ui按钮没有正确点击。我必须点击一次或多次才能执行按钮的点击事件。
auto restartButton = ui::Button::create();
restartButton->setTouchEnabled(true);
restartButton->loadTextures("res/Menu/End Game/btnRestart.png",
"res/Menu/End Game/btnRestartTapped.png", "");
restartButton->setScale(MaxScaleSize*1.3);
restartButton->setAnchorPoint(Vec2(0.5, 1));
restartButton->setPosition(Vec2(centreOfScreen.x, lblPauseSprite->getPositionY() - (lblPauseSprite->getBoundingBox().size.height+aspectFillRatio.y * 80)));
restartButton->addTouchEventListener(CC_CALLBACK_2(PauseLayer::restartCallback, this));
this->addChild(restartButton);
void PauseLayer::restartCallback(Ref* pSender, ui::Widget::TouchEventType eEventType)
{
Director::getInstance()->resume();
auto scene = GameScene::createScene();
Director::getInstance()->replaceScene(TransitionFade::create(1.0f, scene, Color3B(0, 255, 255)));
}
我使用上面的代码来创建Button。其他按钮下面给出的菜单代码
auto pauseButton = MenuItemImage::create("res/Menu/Top bar/btnPause.png",
"res/Menu/Top bar/btnPauseTapped.png",
CC_CALLBACK_1(GameScene::menuPauseCallback, this));
pauseButton->setScale(MaxScaleSize*1.0f);
pauseButton->setPosition(
Vec2(
visibleSize.width
- pauseButton->getContentSize().width / 2 - 15 * aspectFillRatio.x,
centerOfStripDown));
auto menu = Menu::create(pauseButton, NULL);
menu->setPosition(Vec2::ZERO);
this->addChild(menu, 1);
工作正常,但我想使用Buttons而不是菜单。所以任何帮助都会感激不尽。