• 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;
    }
    

    运行结果:


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

    首先在project文件夹下加入一张带有艺术字的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;
    }
    


    运行结果:



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

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

    程序代码

    #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;
    }
    


    运行结果:


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

    首先在project文件夹下的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;
    }
    

    运行结果:


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

    首先在project文件夹下的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;
    }
    

    运行结果


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

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

    程序代码

    #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;
    }
    


    运行结果:

    

  • 相关阅读:
    javascript获取当前日期、年份和月份等
    程序员也可以懂一点期望值管理
    数据类型,隐式转换以及json,对象,引用类型,预解析 视频教程
    两个值交互位置的几种方法
    通过Class获取标签,兼容的几种思路
    前端开发流程
    元素多层嵌套,JS获取问题
    原生JS实现分页效果2.0(新增了上一页和下一页,添加当前元素样式)
    原生JS实现分页效果1.0
    学习方法,以及时间的安排。
  • 原文地址:https://www.cnblogs.com/mthoutai/p/6806978.html
Copyright © 2020-2023  润新知