精灵菜单类menuitemsprite它的其中一个创建函数create定义如下
使用menuitemsprite比较麻烦在创建menuitemsprite之前要先创建三种状态时候的精灵即normalsprite、selectedsprite和disabledsprite。menuitemsprite还有一些create函数在这些函数中可以省略disabledsprite参数。
如果精灵是由图片构成的我们可以使用图片菜单menuitemimage实现与精灵菜单同样的效果。menuitemimage类的其中一个创建函数create定义如下
menuitemimage还有一些create函数在这些函数中可以省略disabledimage参数。
我们通过一个实例介绍一下精灵菜单和图片菜单的使用这个实例如下图所示。

下面我们看看helloworldscene.cpp中init函数如下
在上面的代码中第①②行是创建两种不同状态的精灵第③行代码是创建精灵菜单menuitemsprite对象第④行代码是设置开始菜单项startmenuitem位置注意这个坐标是(700,170)由于(700, 170)的坐标是ui坐标需要转换为opengl坐标。
第⑤和⑦行代码是创建图片菜单menuitemimage对象第⑥和⑧行代码是设置图片菜单位置。第⑨行代码是菜单menu对象第⑩行代码是菜单的位置mu->setposition(point::zero)设置的位置是point::zero它等价于point(0.0f,0.0f)。
还有由于背景图片大小是1136 x 640而win32默认窗口大小是960 x 640我们需要重新设置大小修改appdelegate.cpp代码如下
我们需要在第①行添加glview->setframesize(1136, 640)代码。
上述代码中的第①行定义的函数menuokcallback是在用户在设置场景点击“ok”菜单时候回调。第②行代码是使用popscene函数返回helloworld场景。
更多内容请关注最新cocos图书《cocos2d-x实战 c++卷》
欢迎加入cocos2d-x技术讨论群257760386
《cocos2d-x实战 c++卷》现已上线各大商店均已开售
《cocos2d-x实战 c++卷》源码及样章下载地址
欢迎关注智捷ios课堂微信公共平台