主要是涉及引擎中menu的使用
常见的几种使用方法
1、可变换图标
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));
// create menu, it's an autorelease object
auto menu = Menu::create(closeItem, NULL);
menu->setPosition(Vec2::ZERO);
this->addChild(menu, 1);
但是,请注意this->addChild(menu, 1); 当项目中涉及到用数字区分或者记录位置时,如果初始定义了1的具体含义,这里就不能用了
2、文本菜按钮单项,通过指定文本标签,这个点击会有放大效果。先创建一个文本,然后绑在CCMenuItemLabel
上面就可以做按钮了
CCLabelTTF* pLabel = CCLabelTTF::create("button", "Arial", 30);//参数分别是:按钮要显示的文字,字体,字号
CCMenuItemLabel* pBtn = CCMenuItemLabel::create(pLabel) ;
pBtn->setPosition(ccp(100, 100));
CCMenu* pMenu = CCMenu::create(pBtn, NULL);
pMenu->setPosition(CCPointZero);
this->addChild(pMenu);
3、CCMenuItemImage /CCMenuItemFont + CCMenuItemToggle + CCMenu
这种方法创建的图片按钮在点击之后不会有显示效果切换,例如现在显示start,点击之后会显示stop,不在变化,若再次点击,才会变回start。
CCMenuItemFont* start = CCMenuItemFont::create("start"); CCMenuItemFont* stop = CCMenuItemFont::create("stop"); CCMenuItemToggle* toggle = CCMenuItemToggle::createWithTarget(this, menu_selector(MyLayer::show), start, stop, NULL); toggle->setPosition(ccp(100, 100)); CCMenu* menu = CCMenu::create(toggle,NULL); menu->setPosition(CCPointZero); addChild(menu);