赞 | 287 |
VIP | 11 |
好人卡 | 74 |
积分 | 228 |
经验 | 281171 |
最后登录 | 2024-12-23 |
在线时间 | 9436 小时 |
Lv5.捕梦者 (暗夜天使) 只有笨蛋才会看到
- 梦石
- 1
- 星屑
- 21825
- 在线时间
- 9436 小时
- 注册时间
- 2012-6-19
- 帖子
- 7120
|
6楼
楼主 |
发表于 2015-12-28 17:44:50
|
只看该作者
本帖最后由 喵呜喵5 于 2015-12-28 17:54 编辑
时隔三年后重新回来扫自己的旧帖子:
基本上,在游戏中播放音效的功能主要都定义在 module Sound 中
例如,播放确定音效的定义:- # 确定
- def self.play_ok
- play_system_sound(1)
- end
复制代码 而脚本中通过这个指令进行调用:因此,要在游戏中修改这块的音效,只要像这样写代码:- class << Sound
- def play_ok
- if 条件
- play_system_sound(2)
- else
- play_system_sound(1)
- end
- end
- end
复制代码 在满足条件的情况下,原本播放的确定音效(play_system_sound(1))在满足条件时就变成取消音效了(play_system_sound(2))
之后要修改音效时,只要修改对应的条件即可
更进一步深究代码,我们可以研究一下 play_system_sound 的定义:- def self.play_system_sound(n)
- $data_system.sounds[n].play
- end
复制代码 $data_system.sounds 是一个由音效文件组成的数组, $data_system.sounds[n].play 在做的事情可以看成这个: RPG::SE.new('数据库中设置的音效文件名').play
因此,更加自由的修改方式是把代码改成这样:- class << Sound
- def play_ok
- if 条件
- RPG::SE.new('要修改的音效文件名').play
- else
- play_system_sound(1)
- end
- end
- end
复制代码 当然,比较激进的修改方法是这么做:- $data_system.sounds[n] = RPG::SE.new('音效文件')
复制代码 这么做的优点在于,只要在事件脚本中执行了这句代码以后就能立刻生效,不像上面的方法那样需要再额外修改原生脚本,缺点则是这样的修改并不会保存进游戏的存档中,并且,由于刷新 $data_system 数据的 DataManager.init 只会在游戏开始时执行一次,对于 $data_system.sounds 是全局通用的,因此,在读取存档时,这里的修改会被同时带进到其他的存档中,只要游戏窗口没有关闭,这么做对于任何存档都会生效。 |
评分
-
查看全部评分
|