当前位置:  编程技术>c/c++/嵌入式

Cocos2d-x UI开发之菜单类使用实例

    来源: 互联网  发布时间:2014-10-28

    本文导语:  菜单是我们在开发中经常用到的元素,cocos2d-x中的菜单基本上是分装了文本类和精灵类,代码注释有详细的说明,看代码吧!   bool HelloWorld::init() { bool bRet = false; do { CC_BREAK_IF(! CCLayer::init()); CCLabelTTF * ttf = CC...

菜单是我们在开发中经常用到的元素,cocos2d-x中的菜单基本上是分装了文本类和精灵类,代码注释有详细的说明,看代码吧!


 

bool HelloWorld::init()
{
  bool bRet = false;
  do
  {
    CC_BREAK_IF(! CCLayer::init());

		CCLabelTTF * ttf = CCLabelTTF::create("cocos2d","Arial",24);
		//没有设置坐标,默认放到CCMenu层的中间,第二个参数是事件处理函数属于的类,第三个参数就是调用的函数
		//menu_selector菜单选择器
		CCMenuItemLabel * labelMenu = CCMenuItemLabel::create(ttf,this,menu_selector(HelloWorld::show));

		//可以提前修改字体和大小,否则使用默认的
		CCMenuItemFont::setFontName("Arial");
		CCMenuItemFont::setFontSize(50);
		//内部实现是创建出一个CCLabelTTF,然后用CCLabelTTF创建CCMenuItemLabel
		CCMenuItemFont * fontMenu = CCMenuItemFont::create("cocos2d",this,menu_selector(HelloWorld::show));

		//内部实现是创建出一个CCLabelAtlas,然后用CCLabelAtlas创建CCMenuItemLabel
		CCMenuItemAtlasFont * atlasMenu = CCMenuItemAtlasFont::create("2014/2/12","fps_images.png",
			12,32,'.',this,menu_selector(HelloWorld::show));

		//内部实现是创建一个CCSprite,用CCSprite创建CCMenuItemSprite
		CCMenuItemImage * imgMenu = CCMenuItemImage::create("CloseNormal.png","CloseSelected.png",this,
			menu_selector(HelloWorld::show));

		CCMenuItemFont * font1 = CCMenuItemFont::create("start");
		CCMenuItemFont * font2 = CCMenuItemFont::create("stop");
		CCMenuItemToggle * toggle = CCMenuItemToggle::createWithTarget(this,menu_selector(HelloWorld::show2),
			font1,font2,NULL);

		//CCMenu就是一个特殊的CCLayer,只是这个层中只能放CCMenuItem和CCMenuItem的子类
		//在这个层中,可以为CCMenuItem进行布局,因为是层所以坐标当然默认是(0,0),而且是以左下角点占据坐标位置的
		CCMenu * menu = CCMenu::create(labelMenu,fontMenu,imgMenu,toggle,NULL);
		//为菜单项进行布局,否则就叠加在一起了
		menu->alignItemsHorizontallyWithPadding(10);
		this->addChild(menu);

    bRet = true;
  } while (0);

  return bRet;
}

事件激活函数如下,不要忘记在头文件中声明一下。

void HelloWorld::show(CCObject * pSender)
{
	CCLog("label menu!");
}

void HelloWorld::show2(CCObject * sender)
{
	CCMenuItemToggle * toggle = (CCMenuItemToggle*)sender;
	if(toggle->getSelectedIndex() == 0)
	{
		CCLog("start");
	}
	else if(toggle->getSelectedIndex() == 1)
	{
		CCLog("stop");
	}
}


    
 
 

您可能感兴趣的文章:

  • Cocos2d-x UI开发之CCControlPotentiometer控件类使用实例
  • Cocos2d-x学习笔记之CCLayerColor层的使用实例
  • Cocos2d-x UI开发之CCControlSwitch控件类使用实例
  • Cocos2d-x保存用户游戏数据CCUserDefault类使用实例
  • Cocos2d-x UI开发之CCControlColourPicker控件类使用实例
  • Cocos2d-x中获取系统时间和随机数实例
  • Cocos2d-x Schedule定时器的使用实例
  • Cocos2d-x UI开发之CCControlSlider控件类使用实例
  • Cocos2d-x UI开发之CCControlButton控件类实例
  • Cocos2d-x UI开发之文本类使用实例
  • Cocos2d-x UI开发之场景切换代码实例
  • Cocos2d-x中CCEditBox文本输入框的使用实例
  • Cocos2d-x触摸事件实例
  • Cocos2d-x中使用CCScrollView来实现关卡选择实例
  • Cocos2d-x 3.0多线程异步加载资源实例
  • Cocos2d-x中背景音乐和音效使用实例
  • Cocos2d-x入门教程(详细的实例和讲解)
  • Cocos2d-x人物动作类实例
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • cocos2d-x在linux下的 qtcreator项目模板
  • Cocos2d-x for Windows Phone 8
  • Cocos2D-x 集成开发环境 Cocos Code IDE
  • 手机游戏引擎 Cocos2d-x
  • cocos2d-x 3D扩展 3D ToolKit for cocos2d-x
  • Cocos2d-x学习笔记之开发环境搭建
  • Win7上搭建Cocos2d-x 3.1.1开发环境
  • Cocos2d-x学习笔记之Hello World!
  • 从Cocos2d-x2迁移到Cocos2d-x3的过程分享
  • cocos2d-x学习笔记之CCLayer、CCLayerColor、CCLayerGradient、CCLayerMultiplex场景层介绍
  • 用于cocos2d-x引擎(ndk)中为android项目生成编译文件列表
  • Cocos2d-x学习入门之HelloWorld程序
  • Cocos2d-x学习笔记之世界坐标系、本地坐标系、opengl坐标系、屏幕坐标系
  • Cocos2d-x学习笔记之CCScene、CCLayer、CCSprite的默认坐标和默认锚点实验
  • Cocos2d-x保存用户游戏数据之XML文件是否存在问题判断方法
  • Cocos2d-x中实现弹出对话框示例
  • Cocos2d-x学习笔记之Hello World源码分析
  • Cocos2d-x的内存管理总结
  • Cocos2d-x 3.0中集成社交分享ShareSDK的详细步骤和常见问题解决


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3