CCMenu
CCMenu创建菜单这东西可以说每个游戏都会用到吧(旁白:可不可以快点上教程,真是急死人啦啊)
看来小胖已经等不及了,那就给上个简单的创建菜单吧
(旁白:好激动哦,我的心,你的心,激动激,动激动)
方法:
CCMenu * mymenu=CCMenu::create(菜单项1,菜单项2,......,NULL);
注意最后一定要加个空项,告诉他没了可以开始创建了哦。
在cocos2dx中,我们有5中菜单项可以选择。它们分别是:CCMenuItemFont(字体菜单项)、CCMenuItemImage(图片菜单项)、CCMenuItemLabel(文本菜单项)、CCMenuItemSprite(精灵菜单项)、CCMenuItemToggle(开关菜单项)。下面我们就开始来学习他们的用法吧。
1.CCMenuItemFont(字体菜单项)
方法1:
CCMenuItemFont::create(选项文字,触发目标对象,触发目标函数);
方法2:
CCMenuItemFont::create(选项文字);
2.CCMenuItemImage(图片菜单项)
方法1:
CCMenuItemImage::create(默认显示的图片,点击时显示的图片,触发目标对象,触发目标函数);
3.CCMenuItemLabel(文本菜单项)
方法1:
CCMenuItemLabel::create(CCLableTTF对象,触发目标对象,触发目标函数);
4.CCMenuItemSprite(精灵菜单项)
方法1:
CCMenuItemSprite::create(默认显示的精灵对象,选中时显示的精灵对象,触发目标对象,触发目标函数);
5.CCMenuItemToggle(开关菜单项)
方法1:
CCMenuItemToggle::createWithTarget(触发目标对象,触发目标函数,CCMenuItem对象的可变参数列表);
那我们就做做吧(旁白:快做啊,别废话)
//获取尺寸
CCSize mysize=CCDirector::sharedDirector()->getWinSize();
//文字菜单项
CCMenuItemFont * mymenu1=CCMenuItemFont::create("文字菜单1");
mymenu1->setPosition(ccp(mysize.width/2,mysize.height-40));
CCMenuItemFont * mymenu2=CCMenuItemFont::create("文字菜单2",this,menu_selector(Menu::menuCloseCallback));
mymenu2->setPosition(ccp(mysize.width/2,mysize.height-80));
//图片菜单项
CCMenuItemImage * mymenu3 = CCMenuItemImage::create("CloseNormal.png","CloseSelected.png",this,menu_selector(Menu::menuCloseCallback));
mymenu3->setPosition(ccp(mysize.width/2,mysize.height-120));
//文本菜单项
CCLabelTTF * ttf1=CCLabelTTF::create("文本菜单","Helvetica",24);
CCMenuItemLabel * mymenu4=CCMenuItemLabel::create(ttf1,this,menu_selector(Menu::menuCloseCallback));
mymenu4->setPosition(ccp(mysize.width/2,mysize.height-160));
//精灵菜单项
CCSprite * mysprite1=CCSprite::create("CloseSelected.png");
CCSprite * mysprite2=CCSprite::create("CloseNormal.png");
CCMenuItemSprite * mymenu5=CCMenuItemSprite::create(mysprite1,mysprite2,this,menu_selector(Menu::menuCloseCallback));
mymenu5->setPosition(ccp(mysize.width/2,mysize.height-200));
//开关菜单项
CCMenuItemFont * font1=CCMenuItemFont::create("开");
CCMenuItemFont * font2=CCMenuItemFont::create("关");
CCMenuItemToggle * mymenu6=CCMenuItemToggle::createWithTarget(this,menu_selector(Menu::menuCloseCallback),font1,font2,NULL);
mymenu6->setPosition(ccp(mysize.width/2,mysize.height-240));
//创建菜单
CCMenu* mymenu = CCMenu::create(mymenu1,mymenu2,mymenu3,mymenu4,mymenu5,mymenu6,NULL);
mymenu->setPosition(CCPointZero);
this->addChild(mymenu, 1);
运行后时乱码,解决乱码的方式也说过,改ccp文件编码为utf-8,但是如果你改了之后,可能本来正确的句子会变成错的,生成的时候会报错。所以以后我们在做菜单的时候,还是尽量使用图片形式
小胖呢?????
旁白: 。。。。。。。。叫我干嘛,没看见我在睡觉吗?
讲完啦,你。。。。。可以回家睡啦
旁白: 好哇好哇!!!!!
屌丝