【Cocos2d-x】控制音量的滚动条

上一篇好不容易把滚动条加进来了,结果发现拿它控制音量也不是那么轻松的。

要面对的是两个问题:

1、如何控制音量

2、如何让音量值随滚动条的变化而变

对问题1 本来没想到会是个问题,结果还是出了问题,而且找了半天才找到问题。之前一直用SimpleAutioEngine,别的功能都好用,就是控制音量的函数,进到里面发现是空函数。(真不负责任)这也就解释了为啥 cpp_tests 里的CocosDenshion下面的滚动条控制不了音量。这时发现下面还有一个NewAutioEngine,既然是新的,应该还是趋势,就改用这个吧。这个AutioEngine不需要预加载,所有场景通用,不区分音乐和音效,主要就是这些区别。

怎么用呢,首先还是应该先"添加外部依赖项",这个照上一篇做就可以。然后在需要的类里引用 #include "audio/include/AudioEngine.h"  并在下面添加命名空间 using namespace experimental; 这样就可以使用 AutioEngine 类了。控制音量的就是 AutioEngine::setVolume() 方法

问题2本来也没以为有多复杂,结果通过它着实的巩固了一下C++. 大致原理是这样,我们从extension里引用过来的ControlSlider只是个滚动条,Cocos帮我们做的是我们把它添加到场景之后,可以进行拖拽。但我们想要在它值变动的时候改变不同声音的大小。其实就是要在 onTouchMoved 的时候做些其他事情,并且这个不在滚动条里做,要在外面做。

解决办法就是,做一个类继承 ControlSlider ,在这个新类里重写 onTouchMoved 函数,让它除了做基类的改

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值