博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【乐畅】工作积累 ---- 调节音量大小 (滑动条调节音量大小并保存起来 )
阅读量:7082 次
发布时间:2019-06-28

本文共 2734 字,大约阅读时间需要 9 分钟。

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
(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
(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 }

 

效果

 

 

 

转载于:https://www.cnblogs.com/dudu580231/p/5684800.html

你可能感兴趣的文章
Linux epoll版定时器
查看>>
objective C中数据持久化方式1--对象归档
查看>>
Python面向对象编程 - 一个记事本程序范例(一)
查看>>
马桶餐厅
查看>>
我对程序员技能的一些认识
查看>>
在linux下如何修改oracle的sys和system的密码
查看>>
【C语言】01-C语言概述
查看>>
mysql FullText全文索引的问题
查看>>
空格&nbsp在不同浏览器中显示距离不一致问题解决方法
查看>>
Dynamic CRM 2013学习笔记(八)过滤查找控件 (类似省市联动)
查看>>
iOS执行时与method swizzling
查看>>
SQL点滴21—几个有点偏的语句
查看>>
Android各种效果集合
查看>>
【转】Geary's C
查看>>
Linux中查看socket状态(转)
查看>>
public-private-protected-默认缺省 的区别
查看>>
React Native上手
查看>>
0919 - iPaste 上架 App Store
查看>>
iKcamp&掘金Podcast直播回顾(12月2号和9号的两场)
查看>>
Java简短知识点
查看>>