开始学习Cocos2d-x,之前学过一点cocos2d,只是稍微看了下C++的基本语法,没有很多不懂,今天动手做了个简单的Cocos2d-x的菜单,感觉跟cocos2d区别不大,个别函数换了下,先为自己记录下,只是最基本的菜单实现,下次下优化做得更专业
void LRMenuSecene::createMenu()
{
//CGSize为cocos2d函数,CGSize<-->CCSize
CCSize size = CCDirector::sharedDirector()->getWinSize();
//设置菜单默认属性
CCMenuItemFont::setFontName("Helvetica-BoldOblique");
CCMenuItemFont::setFontSize(26);
//创建一个文字菜单项
CCMenuItemFont* menuItemStart = CCMenuItemFont::itemWithString("开始", this, menu_selector(LRMenuSecene::startMenu));
//创建一个精灵图片菜单项
// CCMenuItemSprite
CCSprite* normalSprite = CCSprite::spriteWithFile("Icon.png");
normalSprite->setColor(ccRED);
CCSprite* selectedSprite = CCSprite::spriteWithFile("Icon.png");
selectedSprite->setColor(ccGREEN);
CCMenuItemSprite* aboutMenu = CCMenuItemSprite::itemWithNormalSprite(normalSprite, selectedSprite, this, menu_selector(LRMenuSecene::aboutMenu));
//创建用于可切换的菜单项
CCMenuItemFont::setFontName("STHeitiJ-Light");
CCMenuItemFont::setFontSize(18);
CCMenuItemFont* noMenu = CCMenuItemFont::itemWithString("关");
CCMenuItemFont* offMenu = CCMenuItemFont::itemWithString("开");
// CCMenuItemFont* optionMenu = CCMenuItemFont::itemWithString("")
CCMenuItemToggle* toggleMenu = CCMenuItemToggle::itemWithTarget(this, menu_selector(LRMenuSecene::optionMenu), noMenu,offMenu, NULL);
//创建菜单
CCMenu* menu = CCMenu::menuWithItems(menuItemStart,aboutMenu, toggleMenu, NULL);
menu->setPosition(size.width*0.5, size.height*0.5);
this->addChild(menu);
//各菜单的间距
menu->alignItemsVerticallyWithPadding(40);
}
void LRMenuSecene::startMenu()
{
std::cout<<"startMenu";
}
void LRMenuSecene::aboutMenu()
{
std::cout<<"aboutMenu";
}
void LRMenuSecene::optionMenu()
{
std::cout<<"optionMenu";
}
效果如下