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