Cocos2d-x如何创建带有标题和字体的图像按钮

Kha*_*war 0 iphone game-engine ios cocos2d-x

嗨,我正在将我的游戏从Corona SDK转换为Cocos2d-x 3.0 alpha.

我需要创建一个带有文本的图像按钮.在Corona SDK中它非常简单widget.newButton,它可以x, y, size, font, image在单个函数中使用所有等.

现在我在Cocos2d-x中找不到任何替代品.我发现的最接近的是MenuItemImage

auto closeItem = MenuItemImage::create(
                                    "blank.png",
                                    "blank-selected.png",
                                     CC_CALLBACK_1(HelloWorld::menuCloseCallback, this));

closeItem->setPosition(Point(origin.x + visibleSize.width - closeItem->getContentSize().width/2 , origin.y + closeItem->getContentSize().height/2));

auto menu = Menu::create(closeItem, NULL);
menu->setPosition(Point::ZERO);
this->addChild(menu, 1);
Run Code Online (Sandbox Code Playgroud)

它需要imagesevent,但我不能设置titlefont它.任何人都知道如何设置标题和字体?

pkt*_*yue 5

你可以使用MenuItemFontMenuItemLabel.

例如:

MenuItemFont::setFontName( "Marker Felt" );
MenuItemFont::setFontSize( 34 );

auto label = LabelBMFont::create( "go back", "fonts/bitmapFontTest3.fnt" );
auto back = MenuItemLabel::create(label, CC_CALLBACK_1(MenuLayer4::backCallback, this) );
Run Code Online (Sandbox Code Playgroud)

要么

MenuItemFont::setFontSize( 34 );
MenuItemFont::setFontName("Marker Felt");
auto item6 = MenuItemFont::create("Bugs", CC_CALLBACK_1(MenuLayerMainMenu::menuCallbackBugsTest, this));
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅 MenuTest.ccp


更新

您只需添加一个Label,然后将其添加到您MenuItemImage,例如:

LabelTTF* closeLabel = LabelTTF::create("close", "Marker Felt", 28);
closeItem->addChild(closeLabel);
Run Code Online (Sandbox Code Playgroud)

您可能需要调整标签的位置.