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;
}
#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;
}
相关文章推荐
- MenuItemFont字体设置bug的解决方法
- cocos2d-x ——菜单层(CCMenuItemFont)二
- CCMenuItemFont CCmenu
- cocos2d-x TestLua 之 CCMenuItemLabel CCMenuItemSprite CCMenuItemFont 菜单类
- cocos2d-x ——菜单层(CCMenuItemFont)二
- CCMenuItemFont一个奇怪的问题(method signature argument cannot be nil)
- 1.cocos2dx之Menu(CCMenuItemFont,CCMenuItemImage,CCMenuItemLabel,CCMenuItemSprite,CCMenuItemToggle)
- How to change the menu item font color individually
- cocos2d-x TestLua 之 CCMenuItemLabel CCMenuItemSprite CCMenuItemFont 菜单类
- cocos2dx 文本label显示方法LabelBMFont,LabelAtlas,MenuItemFont
- 给CCMenuItemFont 加上背景图片
- MenuItemFont、MenuItemLabel
- 1.cocos2dx它Menu(CCMenuItemFont,CCMenuItemImage,CCMenuItemLabel,CCMenuItemSprite,CCMenuItemToggle)
- MenuItemImage
- Toolbar修改MenuItem字体颜色及布局
- Win32汇编--菜单进阶之菜单的单选与多选(CheckMenuItem&CheckMenuRadioItem)
- MenuItemImage
- Windows 编程[19] - 改变菜单项的状态: GetMenuState、EnableMenuItem
- How to add nested MenuItem dynamically
- CCMenuItem 的作用 和方法