Project1

标题: 不通过文件名怎么改变音量? [打印本页]

作者: test    时间: 2014-11-19 22:02
标题: 不通过文件名怎么改变音量?
假设现在某个bgm正在播放中,或者bgm停止播放中。
即现在的状态是 Audio.bgm_play(filename) 或 Audio.bgm_stop 。
假如此时bgm的filename未知,这种情况下怎么改变bgm的volume和pitch?
此外,bgs、se、me在未知filename情况下怎么直接改变volume和pitch?
作者: VIPArcher    时间: 2014-11-19 23:15
首先我可能没看懂你的意思,
如果你的想法是修改音量和声调的话,一个想法就是重写RPG::BGM#play方法,在@volume和 @pitch后面都乘上一个系数。BGS和SE等同样都可以这样做
然后通过控制这个系数来控制音量和声调,(好像那些系统音量控制的脚本就是这么做的(大概,未测试过
作者: test    时间: 2014-11-20 09:00
VIPArcher 发表于 2014-11-19 23:15
首先我可能没看懂你的意思,
如果你的想法是修改音量和声调的话,一个想法就是重写RPG::BGM#play方法,在@v ...

描述得不是很清楚吗……
简单来说,就是如何即时控制bgm的音量。

这是播放bgm的代码:
  1. Audio.bgm_play(filename[, volume[, pitch[, pos]]])
复制代码
假如现在我播放bgm01.ogg,音量是80:
  1. Audio.bgm_play('bgm01.ogg', 80)
复制代码
然后我想要把bgm的音量改成100,那就这样做:
  1. Audio.bgm_play('bgm01.ogg', 100)
复制代码
嗯,这似乎没有什么问题。
但这是建立在知道当前播放bgm文件名的情况下的。
也就是知道当前播放的bgm文件名是bgm01.ogg。

在不知道bgm文件名的情况,举例代码如下:
  1. Audio.bgm_play('bgm' + rand(10).to_s + '.ogg', 80)
复制代码
这时要改变bgm音量,要怎么做?

作者: 泉塚四季    时间: 2014-11-20 11:06
直接修改各自的play方法,在每次播放时记录一下文件名
(参考BGM.last)




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1