音乐和音量的保存

#include "SimpleAudioEngine.h"

using namespace CocosDenshion;//音乐

音乐音效的运用

UserDefault*userDefualt;

    int yinliang;

    bool  yinxiao;


static int  ff=0;

Scene*Birdie::createScene()

{

    auto scene=Scene::create();

    auto layer=Birdie::create();

    scene->addChild(layer);

    return scene;

}

bool Birdie::init()

{

    if (!Layer::init())

    {

        return false;

    }

    ++ff;

    

    userDefualt =UserDefault::getInstance();

    

    

    


userDefualt =UserDefault::getInstance();

   

if (ff==1)

    {

    userDefualt->setIntegerForKey("yinxiao",10);

    userDefualt->setBoolForKey("yinyue",true);

    }

    

    

    

    auto visableSize=Director::getInstance()->getVisibleSize();

    

    

    auto sprite=Sprite::create("loding_bg.png");

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

    sprite->setAnchorPoint(Vec2(0.5, 0.5));

    sprite->setContentSize(Size(480, 320));

    this->addChild(sprite);

    


    auto button=Button::create("playbutton.png");

    button->setPosition(Vec2(240, 80));

    this->addChild(button);

    button->addClickEventListener([=](Ref*){

        auto b=Birdie1::createScene();

        Director::getInstance()->replaceScene(b);

    });

    


    

    auto button3=Button::create("next_left.png");

    button3->setPosition(Vec2(20, 300));

    this->addChild(button3);

    button3->addClickEventListener([=](Ref*){

//        auto b=Birdie1::createScene();

//        Director::getInstance()->replaceScene(b);

    });

    

    auto button1=Button::create("menu.png");

    button1->setPosition(Vec2(460, 290));

    this->addChild(button1);

    button1->addClickEventListener([=](Ref*)

{

        

   

    auto widget = Widget::create();//创建一个widget对象 ,类似于一个层

    widget->setAnchorPoint(Vec2(0, 0));//设置锚点

    widget->setPosition(Vec2(0, 0));//设置位置

    widget->setContentSize(visableSize);//设置覆盖区域

    widget->setTouchEnabled(true);//开启触摸

    widget->setSwallowTouches(true);//吞噬触摸

    this->addChild(widget);

        

        auto a1=Sprite::create("mianban.png");

        a1->setPosition(Vec2(240, 160));//设置位置

        a1->setContentSize(Size(240, 160));

         widget->addChild(a1);

        auto a2=Text::create("音乐","",20);

        a2->setColor(Color3B::RED);

        a2->setPosition(Vec2(180, 210));//设置位置


        widget->addChild(a2);

        auto a3=Text::create("音量","",20);

        a3->setColor(Color3B::ORANGE);

        a3->setPosition(Vec2(180, 170));//设置位置

     

        widget->addChild(a3);

        

    



        //CheckBox(复选框)

          auto slider=Slider::create();

        auto checkBox=CheckBox::create("duihao2.png", "duihao1.png");

     yinxiao=userDefualt->getBoolForKey("yinyue");

        checkBox->setPosition(Vec2(220, 210));

        checkBox->setScale(0.3);

  //设置复选框)选择时,图片显示的情况

    checkBox->setSelected(yinxiao);

        widget->addChild(checkBox,2);

        checkBox->addEventListener([=](Ref*f ,CheckBox::EventType type)

           {

               

               switch (type)

               {

                   case CheckBox::EventType::SELECTED:

                   {

                      

                       SimpleAudioEngine::getInstance()->resumeBackgroundMusic();

                       slider->setEnabled(true );

                       userDefualt->setBoolForKey("yinyue",true);

                       userDefualt->flush();

                       

                       break;

                   }

                   case CheckBox::EventType::UNSELECTED:

                       

                       

                       SimpleAudioEngine::getInstance()->pauseBackgroundMusic();

                       slider->setEnabled(false );

                       userDefualt->setBoolForKey("yinyue", false);

                       userDefualt->flush();

                      

                       

                       break;

                   default:

                       break;

               }

           });

    

yinliang = userDefualt->getIntegerForKey("yinxiao");

 

    

    

    

        //设置slider背景图片 (红色箭头所指的图)

        slider->loadBarTexture("Slider_Back.png");

        //设置slider滑动按钮图片   (粉色箭头所指的图)

        slider->loadSlidBallTextures("SliderNode_Disable.png");

        //设置slider进度图片   (黄色箭头所指的图)

        slider->loadProgressBarTexture("Slider_PressBar.png");

        slider->setScale(0.5);

        slider->setMaxPercent(10);

slider->setPercent(yinliang);//slider滑动位置设置

        slider->setPosition(Vec2(260, 170));

        widget->addChild(slider);

        slider->addEventListener([=](Ref*sender,Slider::EventType type)

         {

             if (type==Slider::EventType::ON_PERCENTAGE_CHANGED)

             {

                 Slider *slider=dynamic_cast<Slider*>(sender);

                 int percet=slider->getPercent();

                 //设置音量  setBackgroundMusicVolume(percet*0.1);参数最后为0-1

                 // setMaxPercent(10);      10 *0.1=1

                 SimpleAudioEngine::getInstance()->setBackgroundMusicVolume(percet*0.1);

                  userDefualt->setIntegerForKey("yinxiao",percet);

                  userDefualt->flush();

             }

         });



        

        auto button10=Button::create("ok.png");

        button10->setPosition(Vec2(240, 100));

        button10->setScale(0.6);

        widget->addChild(button10);

        button10->addClickEventListener([=](Ref*){

            widget->removeFromParentAndCleanup(true);

    

        });


     });

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值