Cocos2d-X中创建菜单项

Cocos2d-X中创建菜单的类:

CCMenuItemFont:创建纯文本的菜单项

CCMenuItemAtlasFont:创建带有艺术字体的菜单项

CCMenuItemImage:用图片创建菜单项

CCMenuItemLabel:用标签创建菜单项

CCMenuItemSprite:用精灵创建菜单项

CCMenuItemToggle:创建可以来回切换的菜单项如ON/OFF

程序实例:创建一个纯文本菜单项

程序代码:

#include "MenuItem.h"

CCScene* MenuItem::scene()
{
    CCScene* scene = CCScene::create();

    MenuItem* layer = MenuItem::create();

    scene->addChild(layer);

    return scene;
}

bool MenuItem::init()
{
    //初始化父类层
    CCLayer::init();

    //得到窗口的尺寸
    CCSize winSize = CCDirector::sharedDirector()->getWinSize();

    //创建一个Menu(看不到效果,Menu只是一个容器)
    CCMenu* menu = CCMenu::create();

    //添加菜单
    addChild(menu);

    //创建一个只显示文本的菜单项
    CCMenuItemFont* itemFont = CCMenuItemFont::create("This is Font");

    //添加菜单项
    menu->addChild(itemFont);

    return true;
}

执行结果:

程序实例:创建带用艺术字的菜单项

首先在工程目录下添加一张带有艺术字的png格式图片

添加下面的代码

#include "MenuItem.h"

CCScene* MenuItem::scene()
{
    CCScene* scene = CCScene::create();

    MenuItem* layer = MenuItem::create();

    scene->addChild(layer);

    return scene;
}

bool MenuItem::init()
{
    //初始化父类层
    CCLayer::init();

    //得到窗口的尺寸
    CCSize winSize = CCDirector::sharedDirector()->getWinSize();

    //创建一个Menu(看不到效果,Menu只是一个容器)
    CCMenu* menu = CCMenu::create();

    //添加Menu
    addChild(menu);

    //创建一个带有艺术字体的菜单
    CCMenuItemAtlasFont* itemAtlas = CCMenuItemAtlasFont::create("123456", "labelatlasimg.png", 24, 32, '0');

    //添加菜单项
    menu->addChild(itemAtlas);

    return true;
}

执行结果:

程序实例:创建带有图片的菜单项

我使用的是建立工程时程序自带的图片

程序代码

#include "MenuItem.h"

CCScene* MenuItem::scene()
{
    CCScene* scene = CCScene::create();

    MenuItem* layer = MenuItem::create();

    scene->addChild(layer);

    return scene;
}

bool MenuItem::init()
{
    //初始化父类层
    CCLayer::init();

    //得到窗口的尺寸
    CCSize winSize = CCDirector::sharedDirector()->getWinSize();

    //创建一个Menu(看不到效果,Menu只是一个容器)
    CCMenu* menu = CCMenu::create();

    //添加Menu
    addChild(menu);

    //创建带有图片的菜单项
    CCMenuItemImage* itemImage = CCMenuItemImage::create("CloseNormal.png", "CloseSelected.png");

    //添加菜单项
    menu->addChild(itemImage);

    return true;
}

执行结果:

程序实例:用标签创建菜单项

程序代码:

#include "MenuItem.h"

CCScene* MenuItem::scene()
{
    CCScene* scene = CCScene::create();

    MenuItem* layer = MenuItem::create();

    scene->addChild(layer);

    return scene;
}

bool MenuItem::init()
{
    //初始化父类层
    CCLayer::init();

    //得到窗口的尺寸
    CCSize winSize = CCDirector::sharedDirector()->getWinSize();

    //创建一个Menu(看不到效果,Menu只是一个容器)
    CCMenu* menu = CCMenu::create();

    //添加Menu
    addChild(menu);

    //用标签创建菜单项
   CCMenuItemLabel* itemLabelTTF = CCMenuItemLabel::create(
			CCLabelTTF::create("This is Label TTF item", "Arial", 36)
			);

   //添加菜单项目
   menu->addChild(itemLabelTTF);

    return true;
}

执行结果:

程序实例:用标签创建菜单项并且实现彩色文本

首先在工程目录下的Resource文件夹中添加一张png格式的图片

程序代码

#include "MenuItem.h"

CCScene* MenuItem::scene()
{
    CCScene* scene = CCScene::create();

    MenuItem* layer = MenuItem::create();

    scene->addChild(layer);

    return scene;
}

bool MenuItem::init()
{
    //初始化父类层
    CCLayer::init();

    //得到窗口的尺寸
    CCSize winSize = CCDirector::sharedDirector()->getWinSize();

    //创建一个Menu(看不到效果,Menu只是一个容器)
    CCMenu* menu = CCMenu::create();

    //添加Menu
    addChild(menu);

   //用标签创建菜单项,并且实现显示彩色的文本
  	CCMenuItemLabel* itemLabelAtlas = CCMenuItemLabel::create(
			CCLabelAtlas::create("123456", "labelatlasimg.png", 24, 32, '0')
			);

    //添加菜单项
    menu->addChild(itemLabelAtlas);
    return true;
}

执行结果:

程序实例:用标签创建菜单项并且实现彩色文本二

首先在工程目录下的Resource文件夹中添加一个fnt格式的字体文件

程序代码

#include "MenuItem.h"

CCScene* MenuItem::scene()
{
    CCScene* scene = CCScene::create();

    MenuItem* layer = MenuItem::create();

    scene->addChild(layer);

    return scene;
}

bool MenuItem::init()
{
    //初始化父类层
    CCLayer::init();

    //得到窗口的尺寸
    CCSize winSize = CCDirector::sharedDirector()->getWinSize();

    //创建一个Menu(看不到效果,Menu只是一个容器)
    CCMenu* menu = CCMenu::create();

    //添加Menu
    addChild(menu);

    //用艺术字体创建菜单项
    CCMenuItemLabel* itemLabelBMFont = CCMenuItemLabel::create(
			CCLabelBMFont::create("This is BMFONT item", "bitmapFontTest.fnt")
			);

        //添加菜单项
		menu->addChild(itemLabelBMFont);

    return true;
}

执行结果

程序实例:使用精灵创建菜单项

创建精灵使用的是工程自带的图片

程序代码

#include "MenuItem.h"

CCScene* MenuItem::scene()
{
    CCScene* scene = CCScene::create();

    MenuItem* layer = MenuItem::create();

    scene->addChild(layer);

    return scene;
}

bool MenuItem::init()
{
    //初始化父类层
    CCLayer::init();

    //得到窗口的尺寸
    CCSize winSize = CCDirector::sharedDirector()->getWinSize();

    //创建一个Menu(看不到效果,Menu只是一个容器)
    CCMenu* menu = CCMenu::create();

    //添加Menu
    addChild(menu);

     //用精灵创建菜单项
    CCMenuItemSprite* itemSprite = CCMenuItemSprite::create(
             CCSprite::create("CloseNormal.png"),
			CCSprite::create("CloseSelected.png"));

    //添加菜单项
    menu->addChild(itemSprite);

    return true;
}

执行结果:

程序实例:创建可以来回切换的菜单项如ON/OFF

程序代码

#include "MenuItem.h"

CCScene* MenuItem::scene()
{
    CCScene* scene = CCScene::create();

    MenuItem* layer = MenuItem::create();

    scene->addChild(layer);

    return scene;
}

bool MenuItem::init()
{
    //初始化父类层
    CCLayer::init();

    //得到窗口的尺寸
    CCSize winSize = CCDirector::sharedDirector()->getWinSize();

    //创建一个Menu(看不到效果,Menu只是一个容器)
    CCMenu* menu = CCMenu::create();

    //添加Menu
    addChild(menu);

    //创建可以来回切换的菜单
    //创建猜菜单的状态
    CCMenuItem* subItem1 = CCMenuItemFont::create("ON");
	CCMenuItem* subItem2 = CCMenuItemFont::create("OFF");
	CCMenuItem* subItem3 = CCMenuItemFont::create("ON/OFF");

    CCMenuItemToggle* itemToggle = CCMenuItemToggle::create(subItem1);

    itemToggle->addSubItem(subItem2);

    itemToggle->addSubItem(subItem3);

    //添加菜单项目
    menu->addChild(itemToggle);

	menu->alignItemsVertically();

    return true;
}

执行结果:





时间: 2024-10-20 16:16:32

Cocos2d-X中创建菜单项的相关文章

Delphi 在系统菜单中添加菜单项

1 unit Unit001; 2 3 interface 4 5 uses 6 Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, 7 Vcl.Controls, Vcl.Forms, Vcl.Dialogs; 8 9 type 10 TForm1 = class(TForm) 11 procedure FormCreate(Sender:TObject

CentOS删除Applications中的菜单项

有时候会错误的安装一些软件,可能安装被不成功,但是在左上角的Applications菜单中还是会显示出来,让人很不爽. 现在介绍一个删除掉CentOS Applications中菜单项的方法: 1.安装alacarte软件    yum install alacarte. 2. 安装完成后,点击左上角的 "System"菜单 选择 "Perferences'菜单,点击其中的"Main Menu"就会看到Applications中的菜单项了 3. 选中对应的

001在系统菜单中添加菜单项

技术要点: 为了操作系统菜单,先要获取系统菜单指针,可以通过GetSystemMenu函数实现,然后利用菜单指针添加一个菜单项,最后在对话框OnSysCommand方法中处理菜单项的命令. GetSystemMenu方法用于获取一个系统菜单的指针,语法如下: CMenu* GetSystemMenu(BOOL bRect); bRect:FALSE时,该方法返回当前正在使用的系统菜单:TRUE时,该方法将重新设置系统菜单到默认状态,并且方法返回值不可用. 实现过程: (1)新建一个基于对话框的应

cocos2dx中的菜单项CCMenuItem及其五个子类的使用

1.CCMenu继承自CClayer,本质是一个图层,但是它与图层又有不同的地方, 2.CCMenuItem菜单项是一个虚基类,要想使用它需要实现它的五个子类中的某一个 3.菜单项的五个子类: CCMenuItemFont CCMenuItemImage CCMenuItemLabel CCMenuItemSprite CCMenuItemToggle 4.菜单项相对于CCLabel的高级之处在于它有回调函数(menu_seletor),可以实现响应点触事件 5.CCMenu坐标系的默认原点在屏

cocos2d-js cc.MenuItem创建菜单项?

cc.MenuItem.create(callback, target) 创建一个空的菜单项,参数说明: callback  回调函数,用于响应菜单 target  标记项 ctor(callback, target) 构造函数 initWithCallback(callback, target) 初始化一个带回调的菜单项 返回 boolean isEnabled() 返回菜单是否有效 返回 boolean isOpacityModifyRGB() setOpacityModifyRGB(val

Delphi在系统菜单中添加菜单项

unit dy219; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); private procedure sysmenu(var msg: twmmenuselect);message wm_syscommand;

centos 7 在应用菜单中添加菜单项

gnome桌面的所有菜单项都存储如下位置: /usr/share/applications/ 新建一个菜单项,直接在该目录下新建一个后缀名为.desktop的文件即可. $ vi /usr/share/applications/newitem.desktop 文件内容如下: [Desktop Entry]Version=1.0Name=My ProgramIcon=/some/pathExec=/home/danny/some/path/myprog/progTerminal=falseType

如何在WPF中通过XAML代码创建菜单项

示例代码: 示例1:   <Grid>         <Menu>              <MenuItem Header="File">                    <MenuItem Header="Open"/>                    <MenuItem Header="Save"/>                    <MenuItem 

mfc 小程序---在系统菜单中添加菜单项

1建立一个对话框工程:在dlg类里定义一个菜单指针m_pMenu,在对话框OnInitDialog函数里添加代码: m_pMenu=GetSystemMenu(FALSE);//获取系统菜单的指针 m_pMenu->AppendMenu(MF_SEPARATOR);//添加分割线 m_pMenu->AppendMenu(MF_STRING,IDI_PECULIARMENU,"系统菜单"); 补充:IDI_PECULIARMENU 为一个常数,需要在Resourece.h中宏