您的位置:首页 > 产品设计 > UI/UE

MenuItemToggle

2014-09-17 16:50 351 查看
#ifndef __CocoStudioAllKeyPoint__FiveLayer__

#define __CocoStudioAllKeyPoint__FiveLayer__

#include <iostream>

#include "cocos2d.h"

using namespace
cocos2d;

class FiveLayer:public
Layer{

protected:

virtual bool init();

public:

Sprite * bg;

CREATE_FUNC(FiveLayer);

static Scene * createScene();

void onMenuItemToggle(Ref * sender);

};

#endif /* defined(__CocoStudioAllKeyPoint__FiveLayer__) */

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

#include "FiveLayer.h"

bool FiveLayer::init(){

if (!Layer::init()) {

return
false;

}

//加入三个文字按钮,并且设置自己想要的属性

auto item1 = MenuItemFont::create("白龙");

item1->setName("白龙.png");

item1->setString("小白");

// item1->setPosition(Vec2(400,600));

item1->setFontNameObj("Arial");

item1->setFontSizeObj(50);

item1->setColor(Color3B(255,0,0));

auto item2 = MenuItemFont::create("黑龙");

item2->setName("黑龙.png");

// item2->setPosition(Vec2(300,600));

auto item3 = MenuItemFont::create("红龙");

item3->setName("红龙.png");

// item3->setPosition(Vec2(500,600));

//加入一个开关,并且设置它的位置,将三个按钮绑定到这个开关上

MenuItemToggle * menuItemToggle =
MenuItemToggle::createWithCallback(CC_CALLBACK_1(FiveLayer::onMenuItemToggle,
this), item1,item2,item3,NULL);

menuItemToggle->setPosition(Vec2(480,600));

//加入一个菜单,把开关加入菜单

auto menu = Menu::create(menuItemToggle,NULL);

menu->setPosition(Vec2(0,0));

this->addChild(menu);

return
true;

}

void FiveLayer::onMenuItemToggle(Ref * sender){

MenuItemToggle * toogle =
dynamic_cast<MenuItemToggle *>(sender);//把sender强转成MenuItemToggle类型

auto item = toogle->getSelectedItem();

//item
是开关点中的文字按钮

std::string fileName = item->getName();

//通过 item
得到文件名字

bg->setTexture(fileName);

//通过文件名字创建精灵

}

Scene * FiveLayer::createScene(){

auto scene = Scene::create();

auto layer = FiveLayer::create();

scene->addChild(layer);

return scene;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: