Project1

标题: 怎么样让BGM由近到远 [打印本页]

作者: zy625741178    时间: 2012-9-10 02:44
标题: 怎么样让BGM由近到远
就是越接近某个物体,BGM声音越大,离那个物体越远,BGM越小,求高人指点!
作者: 沙漠点灰    时间: 2012-9-10 19:29
lz没说明计算标准.....我先贴个出来
  1. #==============================================================================
  2. # ■ Scene_Map
  3. #------------------------------------------------------------------------------
  4. #  处理地图画面的类。
  5. #==============================================================================

  6. class Scene_Map
  7.   alias _update update
  8.   #--------------------------------------------------------------------------
  9.   # ● 刷新画面
  10.   #--------------------------------------------------------------------------
  11.   def update
  12.     _update
  13.     check_bgm
  14.   end
  15.   #--------------------------------------------------------------------------
  16.   # ● 检查BGM
  17.   #--------------------------------------------------------------------------
  18.   def check_bgm
  19.     return unless $bgm
  20.     return unless $game_map.events[$event_id]
  21.     # 计算距离
  22.     x = ($game_player.x - $game_map.events[$event_id].x)**2
  23.     y = ($game_player.y - $game_map.events[$event_id].y)**2
  24.     $bgm.volume = 110 - Math.sqrt(x+y)*4
  25.     $game_system.bgm_play($bgm)
  26.   end
  27. end
  28. #==============================================================================
  29. # ■ Interpreter (分割定义 8)
  30. #------------------------------------------------------------------------------
  31. #  执行事件命令的解释器。本类在 Game_System 类
  32. # 和 Game_Event 类的内部使用。
  33. #==============================================================================

  34. class Interpreter
  35.   #--------------------------------------------------------------------------
  36.   # ● 开始BGM
  37.   #--------------------------------------------------------------------------
  38.   def bgm_start(id)
  39.     return if $bgm
  40.     $event_id = id
  41.     $bgm = $game_system.bgm_memorize
  42.   end
  43.   #--------------------------------------------------------------------------
  44.   # ● 结束BGM
  45.   #--------------------------------------------------------------------------
  46.   def bgm_stop
  47.     $bgm = nil
  48.     $event_id = nil
  49.   end
  50. end
复制代码


计算公式在25行左右...可自行更换,如果lz不懂脚本的话,建议改改25行最后一个数字,
算是灵敏度吧,数字越高,每走一格减的音量越多。

使用方法:
1.将其插到Main前。

2.在事件中,在"脚本"中输入
bgm_start(x)
x代表目标事件编号。

3.完事后,在"脚本"中输入
bgm_stop
即停止计算,建议在此之后插入新bgm,当然仅仅是建议.

图例:






作者: zy625741178    时间: 2012-9-11 11:29
很谢谢啊....大家都是好人啊...
作者: zy625741178    时间: 2012-9-11 13:01
@沙漠点灰我的设定是这样,但是怎么一进去就卡住不动了?


‘‘──zy625741178于2012-9-11 13:02补充以下内容:

怎么认可答案啊?
’’

23.png (11.63 KB, 下载次数: 3)

我的设定是这样

我的设定是这样





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