设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索

怎么样让BGM由近到远

查看数: 2877 | 评论数: 3 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2012-9-10 02:44

正文摘要:

就是越接近某个物体,BGM声音越大,离那个物体越远,BGM越小,求高人指点!

回复

zy625741178 发表于 2012-9-11 11:29:30
很谢谢啊....大家都是好人啊...
沙漠点灰 发表于 2012-9-10 19:29:02
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,当然仅仅是建议.

图例:





点评

http://bbs.66rpg.com/forum.php?mod=viewthread&tid=248654  发表于 2012-9-11 14:12
谢谢啊,我也急需  发表于 2012-9-11 12:59
回头我做一个BGM/BGS远近控制吧。  发表于 2012-9-11 11:37

评分

参与人数 2星屑 +24 梦石 +2 收起 理由
hcm + 2 认可答案
zxcgood2009 + 24 认可答案,好贴

查看全部评分

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-12-1 14:55

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表