版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Gannicus_Zhu/article/details/47686295
菜单有菜单本身和按钮,也就是说,我们要新建一个按钮,然后放在菜单上,然后再把菜单放在场景里或者其他图层里。
那下面我们来做一个开始游戏的菜单
先新建一个按钮
auto startgame = MenuItemFont::create(“Start Game”,”font/Marker Felt.ttf”,CC_CALLBACK_1(MenuCallBAck));
这里的MenuCallBAck就是我们按钮的被回调的方法,按下按钮就会执行这个方法。
然后新建一个菜单
auto menu = Menu::create(stratagem,…,NULL);
这里新建菜单的时候把上面那个按钮添加了进去,如果有多的按钮需要添加,可以写在省略号处。
现在菜单还显示不出来,需要添加到图层上
this->addChild(menu);
那么我们要开始写回调方法了:
void MenuCallBAck(Ref *obj);
必须定义一个obj变量,这里会告诉你传进来的是哪个按钮。
多个按钮可以共用一个回调方法,那怎么办,很简单,用一个switch:
void MenuCallBAck(Ref *obj){
auto l = (MenuItemFont*)obj;//l存放obj
switch(l->getTag){ //获取按钮的编号,当然你需要提前设置编号,用setTag设置。
…..
}
}
switch中根据按钮的编号设置不同的方法