cocos2d 按钮

 注意:    菜单项必须添加到菜单才可以点击用


  菜单项 图片按钮     

//实现 每点击 一次  按钮, 精灵 旋转 15度。

   

auto visableSize=Director::getInstance()->getVisibleSize();//获取可视区大小

    

    auto menu=Menu::create();

    menu->setPosition(Vec2::ZERO);

    this->addChild(menu);

    

    图1、开始的图片  图2、点击后,不松手的图片               点击结束就回到开始的图片

 auto menuBtn=MenuItemImage::create("Open.png","Close.png");

      menuBtn->setPosition(Vec2(visableSize.width/2, visableSize.height/2));

      menuBtn->setScale(1);

      menu->addChild(menuBtn);//添加到菜单

       setCallback  回调函数,用于响应菜单

      menuBtn->setCallback([=](Ref* pSender)

        {

            static int i=0;

            printf("被点击!%d\n",i++);

            menuBtn->setRotation(15*i);

    

            

        });





   设置字体按钮

//     MenuItemFont::setFontSize(100);

     

    auto menu=Menu::create();

    menu->setPosition(Vec2::ZERO);

    this->addChild(menu);


    auto menuItemFont=MenuItemFont::create("wo");

    menuItemFont->setCallback([=](Ref* pSender)

     {

         

        printf("ni");

         

     });

    menuItemFont->setPosition(Vec2(240, 160));

    menuItemFont->setColor(Color3B::YELLOW);

    menuItemFont->setFontSizeObj(100);//设置字体大小和setFontSize()差不多

    

    menu->addChild(menuItemFont);



//多个按钮排序

menu->alignItemsHorizontally();//水平默认为5

//    menu->alignItemsHorizontallyWithPadding(20);//自定义水平

//    menu->alignItemsVertically();//竖直默认为5

//    menu->alignItemsVerticallyWithPadding(20);//自定义竖直

//    menu->alignItemsInRows(2,2,1, NULL);

      menu->alignItemsInColumns(2,2,1, NULL);



MenultemToggle: 可以容纳多个Menultem的子类,点击可以切换下一个显示的按钮。


   

           




     





                    

     auto font1=MenuItemFont::create("ON");

    auto font2=MenuItemFont::create("OFF");

     auto font3=MenuItemFont::create("PAUSE");


    auto itemTog= MenuItemToggle::createWithCallback([](Ref* sender){

        if (((MenuItemToggle*)sender)->getSelectedIndex()==0) {

            

            printf("ON!\n");

        }

        else if (((MenuItemToggle*)sender)->getSelectedIndex()==1)

        {

            printf("OFF\n");

        }

        else if(((MenuItemToggle*)sender)->getSelectedIndex()==2)

        {

            printf("PAUSE\n");

        }

    }, font1,font2,font3,nullptr);


     itemTog->setSelectedIndex(0);//设置初始化下角标从0开始   "ON"

    itemTog->setAnchorPoint (Vec2(1,1));

    itemTog->setPosition(Vec2(480, 320));

    auto menu = Menu::create();

    menu->setPosition(Vec2::ZERO);

    menu->addChild(itemTog);

    this->addChild(menu);



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值