Cocos2xd__按钮

按钮是什么,好像没有必要解释,我们都知道这东西是用来点击的,点击后使我们的游戏产生一些变化,比如更改了场景,触发了动作等等。

按钮会拦截点击事件,事件触发时调用事先定义好的回调函数。

按钮有一个正常状态,一个选择状态,还有一个不可点击状态,按钮的外观可以根据这三个状态而改变。

Cocos2d-x 提供 Button 对象支持按钮功能,在操作的时候要有头文件包含:#include "ui/CocosGUI.h"

创建一个按钮:

auto myButton = ui::Button::create("But1.png", "But2.png", "But3.png");
myButton->setPosition(Vec2(visibleSize.width / 2, visibleSize.height / 2));
this->addChild(myButton);

改变按钮的一些属性:

myButton->setEnabled(false);
myButton->setTitleText("ButtonCalled");
myButton->setTitleFontName("Arial");
myButton->setTitleFontSize(20);
myButton->setTitleColor(Color3B::YELLOW);

为按钮添加事件:

myButton->addTouchEventListener([](Ref* pSender, ui::Widget::TouchEventType type)
    {
        switch (type)
        {
        case ui::Widget::TouchEventType::BEGAN:    // 按钮按下
            cocos2d::log("ui::Widget::TouchEventType::BEGAN");
            break;
        case ui::Widget::TouchEventType::MOVED:    // 按钮按下并移动
            cocos2d::log("ui::Widget::TouchEventType::MOVED");
            break;
        case ui::Widget::TouchEventType::ENDED:    // 结束按钮按下
            cocos2d::log("ui::Widget::TouchEventType::ENDED");
            break;
        case ui::Widget::TouchEventType::CANCELED:    // 按钮中断
            cocos2d::log("ui::Widget::TouchEventType::CANCELED");
            break;
        default:
            break;
        }
    });

禁用按钮:

   myButton->setEnabled(false); 

创建后,按钮三态示例:

      

 事件触发后,控制台的输出内容(依次 按下,移动两次,抬起):

  

猜你喜欢

转载自www.cnblogs.com/teternity/p/Cocos2xd__Button.html