【独立开发者er Cocos2d-x实战 009】Cocos2dx 菜单项CCMenu使用

Cocos2dx中的菜单用CCMenu/Menu类来实现,该类是一个容器,用来装载各种菜单项,用于菜单项可以是图片、系统字体等。

理论就不说了,先上代码:

	CCMenuItemToggle* item1 = CCMenuItemToggle::createWithTarget(this,  menu_selector(HelloWorld::menuItemToggle),
									   CCMenuItemFont::create("on1"), CCMenuItemFont::create("off1"),
									   CCMenuItemFont::create("on2"), CCMenuItemFont::create("off2"),
									   CCMenuItemFont::create("on3"), CCMenuItemFont::create("off3"),
									   CCMenuItemFont::create("on4"), CCMenuItemFont::create("off4"),
									   NULL);

	CCMenuItemImage* item2 = CCMenuItemImage::create("CloseNormal.png", "CloseSelected.png", this, menu_selector(HelloWorld::menuItemToggle)); 

	CCLabelTTF *lable = CCLabelTTF::create("CCLabelTTF", "fonts/arial", 32);
	CCMenuItemLabel *item3 = CCMenuItemLabel::create(lable, this, menu_selector(HelloWorld::menuItemToggle));

	CCMenu *menu = CCMenu::create(item1, item2, item3, NULL);
	menu->alignItemsVerticallyWithPadding(10);
	addChild(menu);

	menu->setPosition(visibleSize.width / 2 - 100, visibleSize.height / 2 + 100);

同时定义回调函数:

void HelloWorld::menuItemToggle(CCObject *pSender)
{
	CCLOG("HelloWorld::menuItemToggle");
	return;
}

结果如下:

推荐博客:

【csb】http://blog.csdn.net/chenqiai0/article/details/46633407

【帧动画】http://blog.csdn.net/chenqiai0/article/details/46808109

【制作plist】http://blog.csdn.net/chenqiai0/article/details/46820669

【加载plist】http://blog.csdn.net/chenqiai0/article/details/46820979

【Scale9Sprite】http://blog.csdn.net/chenqiai0/article/details/46832761

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-12-29 00:25:55

【独立开发者er Cocos2d-x实战 009】Cocos2dx 菜单项CCMenu使用的相关文章

【独立开发者er Cocos2d-x实战 004】使用Cocos2dx加载plist文件

在[独立开发者er Cocos2d-x实战 004]使用Cocos Studio制作plist文件中,我们已经知道如何制作plist,接下来就说说如何使用和加载plist文件. 代码如下: CCSpriteFrameCache * cache = CCSpriteFrameCache::sharedSpriteFrameCache(); cache->addSpriteFramesWithFile("Plist.plist"); CCSprite *room = CCSprite

【独立开发者er Cocos2d-x实战 003】使用Cocos Studio制作plist文件

在[独立开发者er Cocos2d-x实战 002]使用Cocos Studio创建帧动画中,我们已经知道如何创建帧动画,接下来就说说如何进行plist文件的制作/生成. 步骤如下: 创建一个工程CAnimal: 新建一个文件,类型选择合图: 导入图片资源: 合图导出: 查看合图文件: 查看文件: 温馨提示:我们将鼠标方法合图中的小图片上,就会显示图片名,如下: 版权声明:本文为博主原创文章,未经博主允许不得转载.

【独立开发者er Cocos2d-x实战 008】BMFont生成位图字体工具和Cocos2dx使用加载fnt文件

1.首先我们需要下载并且安装BMFont工具,下载地址如下:http://download.csdn.net/detail/chenqiai0/8899353(里面还有详细的使用文档,如果使用中有什么不明白请留言). 2.安装后,打开BMFont,界面如下,右边的列表是字体库 3.创建一个txt文件,然后输入你用到的文字(注意:保存的时候要用utf-8,否则软件无法识别) 4.接下来的操作请大家下载上述资源,然后按照pdf中讲解的步骤操作,肯定可以实现fnt文件的导出. 注意:需要我们注意的是在

【独立开发者er Cocos2d-x实战 006】使用Cocos2dx 实现截图功能

今天台风"灿鸿"来袭,博主默默在家码代码.废话不多说,今天我们要讲的就是截图. Cocos2dx把不同版本实现截图方式不同,我用的是Cocos2dx3.4版本.如果你的版本是Cocos2dx3.2以后的,都是可以用这个方式的,如果是Cocos2dx3.2以前,请参考: 比较Cocos2d-x v2.x与v3.x的截图功能 Cocos2d-x3.1及3.2实现截屏功能 cocos2dx之保存截屏图片 开门见山,直接上代码: const std::string strPath = &quo

【独立开发者er Cocos2d-x实战 012】Cocos2dx 2.2.6 CCTableView和CCTableViewCell详解

首先抛出一个问题:TableView一个Cell存在多个数据源(例如:Sprite),那应该如何区分点击的是哪一个精灵. 如果对上述描述还是不明白的朋友,请见详细描述:请点击. 如果大家使用现有的Cocos2dx实现,个人感觉是行不通的,因为Cocos2dx认为一个Cell就是一个点击,但是我们现在需要的是一个Cell存在多数据源,这样就需要我们自定义TableView和TableViewCell. 首先我创建三个自定义的类: class MyCustomCell: public CCSprit

【独立开发者er Cocos2d-x实战 013】Cocos2dx 网络编程实战之星座运势

本篇文章主要内容:jsoncpp的使用,Cocos2dx网络编程,聚合数据星座运势接口使用. 1.jsoncpp使用: jsoncpp的生成请参考博客:Jsoncpp使用详解以及链接问题解决 2.聚合数据星座运势接口使用: 我们先登上聚合数据官网,申请相关的数据后,就可以得到APPKEY等信息,调试如下: 3.Cocos2dx网络编程:源码下载请点击(源码中包括jsoncpp文件) #include "HelloWorldScene.h" #include "CocoStud

【独立开发者er Cocos2d-x实战 001】csb文件导出和加载

使用cocos studio进行资源文件导出: 然后在cocos工程中进行加载csb文件: auto myLayout = CSLoader::createNode("/res/Desktop/Layer.csb"); addChild(myLayout); 运行时遇到一个问题-- cocos studio编辑和cocos2dx运行不一致: 上述问题是由于exe文件找不到资源,后来发现我们需要将相关的资源copy到Resources目录下, 同时白色字体的解决方法是在cocos stu

【独立开发者er Cocos2d-x实战 007】使用Cocos2dx UserDefault.xml

这篇博客是由于下述问题产生的 -(代码1): std::string str = FileUtils::getInstance()->getWritablePath(); CCLOG(str.c_str()); UserDefault::getInstance()->setStringForKey("keyqq11", "value11"); FileUtils::getInstance()->setWritablePath("D:/&q

【独立开发者er Cocos2d-x实战 005】使用Cocos2dx Scale9Sprite使用

CCScale9Sprite类,有人叫它点九图,有人叫它九宫图,有人叫它九妹图.现在我们就来对他进行简单的使用. CCSpriteFrameCache * cache = CCSpriteFrameCache::sharedSpriteFrameCache(); cache->addSpriteFramesWithFile("Plist.plist"); CCSprite *room = CCSprite::createWithSpriteFrameName("6.pn