Project1

标题: 怎么样设置碰到不可通行块就发出音效 [打印本页]

作者: tallboy8    时间: 2012-9-23 15:22
标题: 怎么样设置碰到不可通行块就发出音效
本帖最后由 hys111111 于 2012-9-24 17:50 编辑

怎样用脚本实现它?
因为是推荐问答,为了营造好的问答环境,不要纯表情,我已帮忙修改。看到问题的技术含量就不扣分了。
                                                                                             ——hys111111

作者: ML4455739    时间: 2012-9-23 20:00
本帖最后由 ML4455739 于 2012-9-23 20:03 编辑

RUBY 代码复制
  1. # 关闭判定的开关ID,默认5号开关为ON时关闭判定
  2.   JUDGE_SWITCHES = 5
  3.  
  4.   # 按键判定类型 true为press,false为trigger,可以尝试一下
  5.   INPUT_TYPE = true # false
  6.  
  7.   # 音效文件名,无需路径,无需后缀名
  8.   SE_NAME = "041-knock02"
  9.  
  10.   # 音效音量,最大100
  11.   SE_VOLUME = 80
  12.  
  13.   # 音效延迟时间(默认40帧 = 1秒)
  14.   SE_DELAY = 12
  15.  
  16. class Scene_Map
  17.  
  18.   def rwa_extra_voice_run_in
  19.  
  20.     td = $game_player
  21.     return true if td.moving? or $game_switches[JUDGE_SWITCHES]
  22.  
  23.     case td.direction
  24.     when 8
  25.      if $game_map.check_event(td.x, td.y - 1).class != Fixnum
  26.       if INPUT_TYPE
  27.         return td.passable?(td.x, td.y - 1, td.direction) if Input.press?(Input::UP)
  28.       else
  29.         return td.passable?(td.x, td.y - 1, td.direction) if Input.trigger?(Input::UP)
  30.       end
  31.      end
  32.     when 6
  33.      if $game_map.check_event(td.x + 1, td.y).class != Fixnum
  34.       if INPUT_TYPE
  35.         return td.passable?(td.x + 1, td.y, td.direction) if Input.press?(Input::RIGHT)
  36.       else
  37.         return td.passable?(td.x + 1, td.y, td.direction) if Input.trigger?(Input::RIGHT)
  38.       end
  39.      end
  40.     when 4
  41.      if $game_map.check_event(td.x - 1, td.y).class != Fixnum
  42.       if INPUT_TYPE
  43.         return td.passable?(td.x - 1, td.y, td.direction) if Input.press?(Input::LEFT)
  44.       else
  45.         return td.passable?(td.x - 1, td.y, td.direction) if Input.trigger?(Input::LEFT)
  46.       end
  47.      end
  48.     when 2
  49.      if $game_map.check_event(td.x, td.y + 1).class != Fixnum
  50.       if INPUT_TYPE
  51.         return td.passable?(td.x, td.y + 1, td.direction) if Input.press?(Input::DOWN)
  52.       else
  53.         return td.passable?(td.x, td.y + 1, td.direction) if Input.trigger?(Input::DOWN)
  54.       end # if INPUT_TYPE
  55.      end # if $game_map.check_event
  56.     end # case
  57.       return true
  58.   end # def
  59.  
  60.   alias rwa_extra_voice_run_in_update update
  61.   def update
  62.     rwa_extra_voice_run_in_update
  63.     return if $game_switches[JUDGE_SWITCHES]
  64.     if !$game_player.moving?
  65.       @@tdtime    ||= []
  66.       @@tdtime[0] ||= 0
  67.       @@tdtime[1] ||= false
  68.       @@tdtime[0] >= SE_DELAY ? @@tdtime[1] = true : @@tdtime[0] += 1
  69.       @@tdtime[0] = 0 if @@tdtime[1]
  70.     end
  71.  
  72.     if rwa_extra_voice_run_in == false and @@tdtime[1]
  73.       Audio.se_play("Audio/SE/#{SE_NAME}", SE_VOLUME, 100)
  74.       @@tdtime[1] = nil
  75.     end # if
  76.   end # def
  77.  
  78. end # class

作者: tallboy8    时间: 2012-9-23 20:53
ML4455739 发表于 2012-9-23 20:00
# 关闭判定的开关ID,默认5号开关为ON时关闭判定
  JUDGE_SWITCHES = 5

真感谢。。   




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