Project1

标题: 脚本里播放节拍=120的bgm 代码。。。? [打印本页]

作者: №独孤剑→    时间: 2013-5-8 14:46
标题: 脚本里播放节拍=120的bgm 代码。。。?
我是彻底没找到方法。
照着写没写出来- -
作者: 亿万星辰    时间: 2013-5-9 07:29
说一下如何找事件对应的脚本,
1、记下你要找的事件操作的名字,比如“演奏 BGM”
2、F11打开脚本编辑器,全局查找“演奏 BGM”,或者“BGM”、"演奏"……这里以搜索“演奏 BGM”为例
3、找到4个地方,其中有Game_System的1处,Interpreter中有3处,后者负责的就是事件操作三页菜单中的各种指令,我们接着可以一步步的从中追溯,其实Game_System中的就是源头,我们还是从根源找一下来熟悉寻找方法的过程。
4、查看Interpreter 2的132行
  1.     when 241  # 演奏 BGM
  2.       return command_241
复制代码
这里就是事件上的操作,具体执行的是 command_241,下面再去找这个方法
5、查看Interpreter 5的364行
  1.   def command_241
  2.     # 演奏 BGM
  3.     $game_system.bgm_play(@parameters[0])
  4.     # 继续
  5.     return true
  6.   end
复制代码
说明最终调用的就是$game_system.bgm_play方法了,也就是第3步里找到的第一个结果。
6、再看Game_System的43行
  1.   def bgm_play(bgm)
  2.     @playing_bgm = bgm
  3.     if bgm != nil and bgm.name != ""
  4.       Audio.bgm_play("Audio/BGM/" + bgm.name, bgm.volume, bgm.pitch)
  5.     else
  6.       Audio.bgm_stop
  7.     end
  8.     Graphics.frame_reset
  9.   end
复制代码
可以看到这里在做了一些文件名的异常处理外,执行的是“Audio.bgm_play("Audio/BGM/" + bgm.name, bgm.volume, bgm.pitch)”这个操作,所以这个就是根源的方法了。

于是,经过这几步的追溯,终于找到了播放BGM的根源方法:
Audio.bgm_play("Audio/BGM/" + bgm.name, bgm.volume, bgm.pitch)
接下来,就可以到F1里搜索Audio这个类/模块的具体方法的用法,以及参数的含义等等了。
作者: №独孤剑→    时间: 2013-5-10 23:14
亿万星辰 发表于 2013-5-9 07:29 说一下如何找事件对应的脚本, 1、记下你要找的事件操作的名字,比如“演奏 BGM” 2、F11打开脚本编辑器, ...

这个我之前已经找到了。随后我写“bgm.pitch = 120”,然后…就错了。我主要是这里不会写。
作者: 小和尚    时间: 2013-5-11 07:19
= = 如果只是单纯的节拍到120.. 完全可以用软件处理一下音乐 直接变成一个120的音乐...
作者: R-零    时间: 2013-5-11 09:16
Audio.bgm_play("Audio/BGM/名字",100,120) #100音量 120节拍


作者: №独孤剑→    时间: 2013-5-11 21:00
R-零 发表于 2013-5-11 09:16 Audio.bgm_play("Audio/BGM/名字",100,120) #100音量 120节拍

谢谢小零~还有我现在面临一个重要的问题:…怎么认可答案…




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