cocos2d-x 3.x学习之滑动条控制背景音乐音量

来源:互联网 发布:手机淘宝 5.9.5旧版本 编辑:程序博客网 时间:2024/05/17 00:56
#include <stdio.h>#include "cocos2d.h"#include "StartScene.hpp"#include "ui/CocosGUI.h"#include "SimpleAudioEngine.h"USING_NS_CC;using namespace ui;using namespace CocosDenshion;class Setting:public Layer{public:    static Scene* createScene();    virtual bool init();    void menuCallBack();    void createSlider();    void SliderCallBack(Ref *pSender,Slider::EventType type);    CREATE_FUNC(Setting);};
<pre name="code" class="cpp">#include "SettingScene.hpp"Scene * Setting::createScene(){    auto scene = Scene::create();    auto layer = Setting::create();    scene->addChild(layer);    return scene;}bool Setting::init(){    if (!Layer::init()) {        return false;    }    Size visibleSize = Director::getInstance()->getVisibleSize();    auto sprite = Sprite::create("mineBG3.png");    sprite->setPosition(Vec2(visibleSize.width / 2, visibleSize.height / 2));    sprite->setScale(2.0f, 1.1788f);    this->addChild(sprite);    auto back = MenuItemImage::create("back.png","back.png",CC_CALLBACK_0(Setting::menuCallBack, this));    back->setPosition(Vec2(900, 50));    back->setScale(2.0f);    auto menu = Menu::create(back, NULL);    menu->setPosition(Vec2::ZERO);    this->addChild(menu,2);    SimpleAudioEngine::getInstance()->playBackgroundMusic("backMusic.mp3",true);    SimpleAudioEngine::getInstance()->setBackgroundMusicVolume(0.5);    createSlider();    return true;}void Setting::createSlider(){    auto visibleSize = Director::getInstance()->getVisibleSize();    //创建一个滑块条    auto sl = Slider::create();    sl->loadBarTexture("sliderTrack.png");    sl->loadSlidBallTextures("sliderballnormal.png", "sliderballpressed.png", "sliderThumb.png");    //设置进度条的图片    sl->loadProgressBarTexture("sliderProgress.png");    sl->setPosition(Vec2(visibleSize.width / 2, visibleSize.height / 2));    sl->setPercent(75);    //回调函数,带两个参数,每改变百分比的时候回调用一次    sl->addEventListener(CC_CALLBACK_2(Setting::SliderCallBack, this));    this->addChild(sl);}void Setting::SliderCallBack(Ref *pSender, Slider::EventType type){    auto item = (Slider*)(pSender);    log("%i",item->getPercent());    if (item->getPercent() == 100) {        item->setEnabled(false);    }else{        SimpleAudioEngine::getInstance()->setBackgroundMusicVolume(item->getPercent() / 100.0f);    }}void Setting::menuCallBack(){    auto scene = Start::createScene();    auto transition = TransitionSlideInL::create(1.0, scene);    Director::getInstance()->replaceScene(transition);}



0 0