// ①标签菜单项(MenuItemLabel)的使用
auto label = Label::createWithSystemFont("MenuItemLabel", "Marker Felt", 32);
// 创建MenuItemLabel菜单项,第一个参数是菜单项中显示的标签对象,第二个参数是玩家点击时调用的回调函数。
auto labelItem = MenuItemLabel::create(label, CC_CALLBACK_0(HelloWorld::menuPrintCallback
,this));
labelItem->setPosition(visibleSize.width/2, visibleSize.height*0.9);
// ②标签菜单项(MenuItemFont)的使用
MenuItemFont::setFontName("Courier New"); // 设置字体
MenuItemFont::setFontSize(64); // 设置大小
// 创建MenuItemFont菜单项,第一个参数是菜单项中显示的文字内容,第二个参数是玩家点击时调用的回调函数。
auto fontItem = MenuItemFont::create("MenuItemFont", CC_CALLBACK_0(HelloWorld::
menuPrintCallback,this));
fontItem->setPosition(visibleSize.width/2, visibleSize.height*0.7);
// ③精灵菜单项(MenuItemSprite)的使用
auto closeNormal = Sprite::create("CloseNormal.png"); // 创建正常状态精灵对象
auto closeSelected = Sprite::create("CloseSelected.png"); // 创建选择状态精灵对象
// 创建MenuItemSprite菜单项,
// 第一个参数是正常状态的精灵对象,第二个参数是选择状态下的精灵对象,第三个参数是回调函数。
auto closeSpriteItem = MenuItemSprite::create(closeNormal, closeSelected, CC_CALLBACK_1
(HelloWorld::menuCloseCallback, this));
closeSpriteItem->setPosition(visibleSize.width/2, visibleSize.height*0.5);
// ④图片菜单项(MenuItemImage)的使用
// 创建MenuItemImage菜单项,
// 第一个参数是正常状态的纹理图片,第二个参数是选择状态下的纹理图片,第三个参数是回调函数。
// 关闭菜单
auto closeItem = MenuItemImage::create("CloseNormal.png","CloseSelected.png",
CC_CALLBACK_1(HelloWorld::menuCloseCallback, this));
closeItem->setPosition(Vec2(origin.x + visibleSize.width - closeItem->getContentSize().width/2,
origin.y+closeItem->getContentSize().height/2);
// ⑤触发器菜单项(MenuItemToggle)的使用
// 创建MenuItemToggle菜单项,
// 第一个参数是回调函数,第二个参数和第三个参数都是MenuItem对象
auto toggleItem = MenuItemToggle::createWithCallback(CC_CALLBACK_1(HelloWorld::
menuItemToggle,this),MenuItemFont::create("On"), MenuItemFont::create("Off"),NULL);
toggleItem->setPosition(visibleSize.width/2, visibleSize.height*0.1);
// ⑥创建一个菜单(Menu),用来装载各种菜单项
auto menu = Menu::create(labelItem,fontItem,closeSpriteItem,closeItem,toggleItem, NULL);
// 设置菜单项在屏幕的位置
menu->setPosition(Vec2::ZERO);
// 将菜单添加到当前层的子节点
this->addChild(menu);