• cocos2d-x3.2 使用开关控制按钮 ControlSwitch



    ContolSwitch 控件起到了一个开关的作用类似于现实生活中的开关,直接上代码:

    .h文件

    //
    //  SwitchBtnScene.h
    //  LSWGameIOS
    //
    //  Created by lsw on 14-10-17.
    //
    //
    
    #ifndef LSWGameIOS_SwitchBtnScene_h
    #define LSWGameIOS_SwitchBtnScene_h
    
    #include "cocos2d.h"
    #include "cocos-ext.h"
    
    class SwitchBtnScene : public cocos2d::Layer
    {
    public:
        static cocos2d::Scene *createScene();
        bool init();
        CREATE_FUNC(SwitchBtnScene);
        
        void valueChanged(cocos2d::Ref *sender, cocos2d::extension::Control::EventType evt);
    };
    
    #endif
    

    .cpp文件

    //
    //  SwitchBtnScene.cpp
    //  LSWGameIOS
    //
    //  Created by lsw on 14-10-17.
    //
    //
    
    #include "SwitchBtnScene.h"
    #include "GUI/CCControlExtension/CCControlSwitch.h"
    
    USING_NS_CC;
    USING_NS_CC_EXT;
    
    Scene *SwitchBtnScene::createScene()
    {
        auto scene = Scene::create();
        auto layer = SwitchBtnScene::create();
        scene->addChild(layer);
        return scene;
    }
    
    bool SwitchBtnScene::init()
    {
        if (!Layer::init())
        {
            return false;
        }
        
        auto winSize = Director::getInstance()->getWinSize();
        auto onLabel = Label::createWithSystemFont("on", "Arail", 20);
        auto offLabel = Label::createWithSystemFont("off", "Arail", 20);
        onLabel->setColor(Color3B(0, 0, 0));
        offLabel->setColor(Color3B(0, 0, 0));
        
        auto maskSprite = Sprite::create("switchButton/switchGreen.png");
        auto onSprite = Sprite::create("switchButton/switchGreen.png");
        auto offSprite = Sprite::create("switchButton/switchRed.png");
        auto thumbSprite = Sprite::create("switchButton/switchBtn.png");
        //设置按钮的截取范围 开关图片和显示文字以及按钮
        ControlSwitch *switchBtn = ControlSwitch::create(maskSprite, onSprite, offSprite, thumbSprite, onLabel, offLabel);
        addChild(switchBtn);
        switchBtn->setPosition(Vec2(winSize.width/2, winSize.height/2));
        //设置监听事件
        switchBtn->addTargetWithActionForControlEvents(this, cccontrol_selector(SwitchBtnScene::valueChanged), Control::EventType::VALUE_CHANGED);
        
        return true;
    }
    
    void SwitchBtnScene::valueChanged(Ref *sender, Control::EventType evt)
    {
        if (evt == Control::EventType::VALUE_CHANGED)
        {
            ControlSwitch *btn = (ControlSwitch *)sender;
            if (btn->isOn())
            {
                CCLOG("btn is on");
            }
            else
            {
                CCLOG("btn is off");
            }
        }
        else
        {
            CCLOG("is other state");
        }
    }



  • 相关阅读:
    设置maven阿里云镜像和公司私服并存
    idea favorites bookmarks标签收藏夹数据丢失bug
    C#后期绑定调用COM组件
    SQL Studio 1.0:一款轻便的SQL脚本工具兼容SQL Server、MySQL、Access2007
    SQL Studio 2.0: 新版发布
    SQLHelper用的不爽,试试CmdRunner吧
    Flask + uWSGI+ Linux 指南及避坑
    Flask + Pyinstaller 打包后运行报错 SystemError
    Url重写之UrlRewriter
    .net5 提取压缩包内指定文件内容无需解压
  • 原文地址:https://www.cnblogs.com/shiweihappy/p/4246417.html
Copyright © 2020-2023  润新知