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

本文共 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中发现IP地址冲突的方法
查看>>
开机启动服务:chkconfig命令详解
查看>>
利用clonezilla克隆、还原CentOS整个系统
查看>>
FineReport和泛微OA(Ecology)的单点登录集成方案
查看>>
使用powercli脚本修改vmware虚拟机网卡类型
查看>>
Struts2__action中实现先弹窗再跳转
查看>>
tree 树
查看>>
linux安装SVN服务器
查看>>
netfilter+l7+squid来实现防火墙过滤(内核升级iptables增加layer7补丁)
查看>>
inode占用异常问题
查看>>
读写文件、文件方法、python2的乱码问题、python对passwd文件进行排序
查看>>
Linux 显示IP地理位置 qqwry系列小工具
查看>>
网络生产故障排除案例集
查看>>
Linux命令之 lsof详解
查看>>
【NetApp】关于inode的说明
查看>>
Router OS 的详细的设置方法
查看>>
java抓取数据+破解屏蔽ip访问【多线程数据采集之三】
查看>>
***交互干货必收 | App界面交互设计规范
查看>>
互联网保险O2O平台微服务架构设计
查看>>