MenuItemFont

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

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值