• 【乐畅】工作积累 ---- 调节音量大小 (滑动条调节音量大小并保存起来 )


    cocos2dx 的音量的大小的范围是 0.0f ~ 1.0f

     
     1     // 获取音量大小
     2     float musicVolume = getMusicVolume();
     3     float effectVolume = getEffectVolume();
     4 
     5     SimpleAudioEngine::sharedEngine()->setBackgroundMusicVolume(musicVolume);
     6     SimpleAudioEngine::sharedEngine()->setEffectsVolume(effectVolume);
     7     
     8     // 音乐
     9     ControlSlider *sliderMusic = ControlSlider::create("Setting/ttttt.png", "Setting/ttttt.png", "Setting/ttdd.png");
    10     sliderMusic->setPosition( Vec2(pBack->getContentSize().width * 0.6, pBack->getContentSize().height * 0.63));
    11     // 设置滑动条的范围
    12     sliderMusic->setMinimumValue(0.0f);
    13     sliderMusic->setMaximumValue(100.0f);
    14     // 设置当前滑动条的当前值
    15     sliderMusic->setValue(musicVolume * 100.0f);
    16     sliderMusic->addTargetWithActionForControlEvents(this, cccontrol_selector(DialogSetting::changeMusic), Control::EventType::VALUE_CHANGED);
    17     pBack->addChild(sliderMusic);
    18 
    19     // 音效
    20     ControlSlider *sliderEffect = ControlSlider::create("Setting/ttttt.png", "Setting/ttttt.png", "Setting/ttdd.png");
    21     sliderEffect->setPosition( Vec2(pBack->getContentSize().width * 0.6, pBack->getContentSize().height * 0.45));
    22     // 设置滑动条的范围
    23     sliderEffect->setMinimumValue(0.0f);
    24     sliderEffect->setMaximumValue(100.0f);
    25     // 设置当前滑动条的当前值
    26     sliderEffect->setValue(effectVolume * 100.0f);
    27     sliderEffect->addTargetWithActionForContro

    回调事件

     1 void DialogSetting::changeMusic( Ref *pSender, Control::EventType event )
     2 {
     3     ControlSlider *target = static_cast<ControlSlider *>(pSender);
     4     float musicVolume = target->getValue() / 100.0f;
     5     SimpleAudioEngine::sharedEngine()->setBackgroundMusicVolume(musicVolume);
     6     setMusicVolume(musicVolume);
     7 }
     8 
     9 void DialogSetting::changeEffect( Ref *pSender, Control::EventType event )
    10 {
    11     ControlSlider *target = static_cast<ControlSlider *>(pSender);
    12     float effectVolume = target->getValue() / 100.0f;
    13     SimpleAudioEngine::sharedEngine()->setEffectsVolume(effectVolume);
    14     setEffectVolume(effectVolume);
    15 }

    存储数据

     1 float getMusicVolume()
     2 {
     3     char buff[32];
     4     sprintf(buff, "%s_MusicVolume", GameName);
     5     return GetFloatToXML(buff, 1.0f);
     6 }
     7 
     8 void setMusicVolume(float volume)
     9 {
    10     char buff[32];
    11     sprintf(buff, "%s_MusicVolume", GameName);
    12     SetFloatToXML(buff, volume);
    13     SaveFlush;
    14 }
    15 
    16 float getEffectVolume()
    17 {
    18     char buff[32];
    19     sprintf(buff, "%s_EffectVolume", GameName);
    20     return GetFloatToXML(buff, 1.0f);
    21 }
    22 
    23 void setEffectVolume(float volume)
    24 {
    25     char buff[32];
    26     sprintf(buff, "%s_EffectVolume", GameName);
    27     SetFloatToXML(buff, volume);
    28     SaveFlush;
    29 }

    效果

  • 相关阅读:
    jQuery源码分析-01总体架构
    JS框架的一些小总结
    jquery validate表单验证插件
    jQuery $.extend()用法总结
    详解;(function ($,window,document,undefined){...})(jQuery,window,document);
    (function(){... })();
    同源策略 JSONP(实践篇)
    **字符集--发展史
    Django X 和 druid
    Django xadmin的使用 (三)
  • 原文地址:https://www.cnblogs.com/dudu580231/p/5684800.html
Copyright © 2020-2023  润新知