本人菜鸟一名,最近打算学习Cocos2d 游戏开发,写博文记录学习历程,博文都是基础,欢迎批评指正。
博文中有部分代码及内容引自 《Cocos2d-x 3.x 游戏开发之旅》(钟迪龙 著),所有权归书作者所有。
由于时间等原因,恕不一一注明出处,如有不妥,请联系本人,特此声明!
菜鸟学习Cocos2d之 Menu
核心代码如下:
MenuItemImage *pCloseItem = MenuItemImage::create(
"CloseNormal.png",
"CloseSelected.png",
CC_CALLBACK_1(HelloWorld::menuCloseCallback,this));
//创建一个标签
Label* label = Label::createWithTTF("I am a Label Item", "fonts/Marker Felt.ttf", 30);
//用标签创建一个标签菜单项
MenuItemLabel* pLabelItem = MenuItemLabel::create(label);
//创建菜单,用来存放菜单项
Menu* pMenu = Menu::create(pCloseItem,pLabelItem,NULL);
//菜单项 垂直方向上自动排列
pMenu->alignItemsVertically();
//设置菜单坐标
pMenu->setPosition(Point(visibleSize.width / 2,visibleSize.height / 2));
//添加菜单到层理
this->addChild(pMenu,1);
由于书中Cocos2d-x 版本是3.0 而自己用的是3.6,3.6较3.0有诸多改动, 书中代码不能通过编译
红色部分要注意,MenuItemImage::create()函数已改动。
//注意 MenuItemImage 创建时的问题 以前的方法已被声明否决
CCMenuItem.h中描述
CC_DEPRECATED_ATTRIBUTE static MenuItemImage* create(const std::string& normalImage, const std::string& selectedImage, Ref* target, SEL_MenuHandler selector);
static MenuItemImage* create(const std::string&normalImage, const std::string&selectedImage, const ccMenuCallback& callback);
要用新式方法 CC_CALLBACK_1(HelloWorld::menuCloseCallback,this));
这也是在官方MenuTest例程中学到的。
附上图: