注意: 菜单项必须添加到菜单才可以点击用
菜单项 图片按钮
//实现 每点击 一次 按钮, 让 精灵 旋转 15度。
auto visableSize=Director::getInstance()->getVisibleSize();//获取可视区大小
auto menu=Menu::create();
menu->setPosition(Vec2::ZERO);
this->addChild(menu);
图1、开始的图片 图2、点击后,不松手的图片 点击结束就回到开始的图片
auto menuBtn=MenuItemImage::create("Open.png","Close.png");
menuBtn->setPosition(Vec2(visableSize.width/2, visableSize.height/2));
menuBtn->setScale(1);
menu->addChild(menuBtn);//添加到菜单
setCallback 回调函数,用于响应菜单
menuBtn->setCallback([=](Ref* pSender)
{
static int i=0;
printf("被点击!%d\n",i++);
menuBtn->setRotation(15*i);
});
设置字体按钮
// MenuItemFont::setFontSize(100);
auto menu=Menu::create();
menu->setPosition(Vec2::ZERO);
this->addChild(menu);
auto menuItemFont=MenuItemFont::create("wo");
menuItemFont->setCallback([=](Ref* pSender)
{
printf("ni");
});
menuItemFont->setPosition(Vec2(240, 160));
menuItemFont->setColor(Color3B::YELLOW);
menuItemFont->setFontSizeObj(100);//设置字体大小和setFontSize()差不多
menu->addChild(menuItemFont);
//多个按钮排序
menu->alignItemsHorizontally();//水平默认为5
// menu->alignItemsHorizontallyWithPadding(20);//自定义水平
// menu->alignItemsVertically();//竖直默认为5
// menu->alignItemsVerticallyWithPadding(20);//自定义竖直
// menu->alignItemsInRows(2,2,1, NULL);
menu->alignItemsInColumns(2,2,1, NULL);
MenultemToggle: 可以容纳多个Menultem的子类,点击可以切换下一个显示的按钮。
auto font1=MenuItemFont::create("ON");
auto font2=MenuItemFont::create("OFF");
auto font3=MenuItemFont::create("PAUSE");
auto itemTog= MenuItemToggle::createWithCallback([](Ref* sender){
if (((MenuItemToggle*)sender)->getSelectedIndex()==0) {
printf("ON!\n");
}
else if (((MenuItemToggle*)sender)->getSelectedIndex()==1)
{
printf("OFF\n");
}
else if(((MenuItemToggle*)sender)->getSelectedIndex()==2)
{
printf("PAUSE\n");
}
}, font1,font2,font3,nullptr);
itemTog->setSelectedIndex(0);//设置初始化下角标从0开始 "ON"
itemTog->setAnchorPoint (Vec2(1,1));
itemTog->setPosition(Vec2(480, 320));
auto menu = Menu::create();
menu->setPosition(Vec2::ZERO);
menu->addChild(itemTog);
this->addChild(menu);