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

MenuItemFont

2014-09-17 09:06 176 查看
#ifndef __CocoStudioAllKeyPoint__TwoLayer__

#define __CocoStudioAllKeyPoint__TwoLayer__

#include <iostream>

#include "cocos2d.h"

using namespace
cocos2d;

class TwoLayer:public
Layer{

protected:

virtual bool init();

public:

CREATE_FUNC(TwoLayer);

static Scene * createScene();

virtual void onItemFont(Ref * sender);

};

#endif /* defined(__CocoStudioAllKeyPoint__TwoLayer__) */

#include "TwoLayer.h"

bool TwoLayer::init(){

if (!Layer::init()) {

return
false;

}

//MenuItem
默认锚点{0.5,0.5},Position 为{0,0}

auto menuItemFont1 =
MenuItemFont::create("wangziye",CC_CALLBACK_1(TwoLayer::onItemFont,
this));

menuItemFont1->setPosition(Vec2(480,620));

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

menuItemFont1->setName("green");

/*

//设置菜单项文本

menuItemFont1->setString("wangyang");

*/

auto menuItemFont2 =
MenuItemFont::create("wangziye",CC_CALLBACK_1(TwoLayer::onItemFont,
this));

menuItemFont2->setPosition(Vec2(280,620));

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

menuItemFont2->setName("blue");

/*

//设置菜单项字体大小

menuItemFont2->setFontSizeObj(40);

*/

auto menuItemFont3 =
MenuItemFont::create("wangziye",CC_CALLBACK_1(TwoLayer::onItemFont,
this));

menuItemFont3->setPosition(Vec2(680,620));

menuItemFont3->setColor(Color3B::RED);

menuItemFont3->setName("red");

/*

//设置菜单字体名

menuItemFont3->setFontNameObj("Arial");

*/

//练习一
点击菜单后,显示你的姓名,性别,出生日期

auto item = MenuItemFont::create("Hello",CC_CALLBACK_1(TwoLayer::onItemFont,
this));

item->setPosition(Vec2(100,100));

item->setColor(Color3B::GRAY);

//Menu
默认锚点{0,0},position 为父节点中心

auto menu = Menu::create(item,menuItemFont1,menuItemFont2,menuItemFont3,NULL);//create(MenuItem
* item,........) 多参函数,可传多个MenuItem
子类

/*

//菜单项纵向自动排列

menu->alignItemsVertically();

//菜单项纵向按固定间隔排列

menu->alignItemsVerticallyWithPadding(100);

//菜单项横向自动排列

menu->alignItemsHorizontally();

//菜单项横向自动排列固定间隔

menu->alignItemsHorizontallyWithPadding(100);

//menu->setPosition(Vec2(480,320));

//如果菜单项要自动排列,无论横向还是纵向, menu
的位置要自己设置到屏幕任何位置,或者不给 menu
设置位置,他会自动在中心

*/

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

//如果要把其他的 menuItemFont放在为他们设置的位置上, menu
的位置必须是menu->setPosition(Vec2(0,0))

this->addChild(menu);

/*

//菜单是否有效

menu->setEnabled(true);

menu->setEnabled(false);

*/

return
true;

}

void TwoLayer::onItemFont(Ref * sender){

//练习一
点击菜单后,显示你的姓名,性别,出生日期

auto label =
Label::createWithSystemFont("王紫叶,女,19920711",
"Arial", 24);

label->setPosition(Vec2(150,150));

this->addChild(label);

auto MenuItemFontT =
dynamic_cast<MenuItemFont *>(sender);

if (MenuItemFontT->getName() ==
"green") {

auto bg =
Sprite::create("白龙.png");

bg->setPosition(480,320);

this->addChild(bg);

}

if (MenuItemFontT->getName() ==
"blue") {

auto bg =
Sprite::create("黑龙.png");

bg->setPosition(480,320);

this->addChild(bg);

}

if (MenuItemFontT->getName() ==
"red") {

auto bg =
Sprite::create("红龙.png");

bg->setPosition(480,320);

this->addChild(bg);

}

}

Scene * TwoLayer::createScene(){

auto scene = Scene::create();

auto layer = TwoLayer::create();

scene->addChild(layer);

return scene;

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