【乐畅】工作积累 ---- 调节音量大小 (滑动条调节音量大小并保存起来 )
生活随笔
收集整理的這篇文章主要介紹了
【乐畅】工作积累 ---- 调节音量大小 (滑动条调节音量大小并保存起来 )
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
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 // 設(shè)置滑動(dòng)條的范圍 12 sliderMusic->setMinimumValue(0.0f); 13 sliderMusic->setMaximumValue(100.0f); 14 // 設(shè)置當(dāng)前滑動(dòng)條的當(dāng)前值 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 // 設(shè)置滑動(dòng)條的范圍 23 sliderEffect->setMinimumValue(0.0f); 24 sliderEffect->setMaximumValue(100.0f); 25 // 設(shè)置當(dāng)前滑動(dòng)條的當(dāng)前值 26 sliderEffect->setValue(effectVolume * 100.0f); 27 sliderEffect->addTargetWithActionForContro回調(diào)事件
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 }存儲(chǔ)數(shù)據(jù)
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 }?
效果
?
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/dudu580231/p/5684800.html
總結(jié)
以上是生活随笔為你收集整理的【乐畅】工作积累 ---- 调节音量大小 (滑动条调节音量大小并保存起来 )的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 王者荣耀掉帧解决方法 2017年赵寅成
- 下一篇: 8.5 趣味游戏(2)