#==============================================================================
# ■ Game_System
#------------------------------------------------------------------------------
# 全局声音控制(音量,节拍)。
#==============================================================================
# * 使用方法:
# * $game_system.bgm_volume = 0.5 调节BGM播放的音量为正常值的一半。
# * $game_system.bgm_pitch = 0.5 调节BGM播放的节拍为正常值的一半。
# * 可以使用类似的方法对BGS,ME,SE进行调整,
# * 比如 $game_system.bgs_volume = 0.1 调节BGS播放的音量为正常值的十分之一。
#==============================================================================
=begin
遇到一个尴尬问题:
ME,SE时长太短,通常不容易立刻改变其播放音量,节拍,只能在下次播放时生效
(因为难判断ME,SE是否还在播放,所以不能再使用“通解”方法了)。
暂时找不到解决方法!
=end
class Game_System
# ====================== 修改 ======================
attr_accessor :me_volume, :me_pitch
attr_accessor :se_volume, :se_pitch
alias initialize_me_se_v_p_old initialize
def initialize
initialize_me_se_v_p_old
@me_volume = @me_pitch = @se_volume = @se_pitch = 1
end
# ==================================================
#=====================================================================
# 音量控制
#=====================================================================
def bgm_volume
if @bgm_volume == nil
@bgm_volume = 1
end
return @bgm_volume
end
def bgm_volume=(volume)
if @bgm_volume == volume
return
end
@bgm_volume = volume
bgm_play(@playing_bgm)
end
def bgs_volume
if @bgs_volume == nil
@bgs_volume = 1
end
return @bgs_volume
end
def bgs_volume=(volume)
if @bgs_volume == volume
return
end
@bgs_volume = volume
bgs_play(@playing_bgs)
end
=begin
def me_volume
if @me_volume == nil
@me_volume = 1
end
return @me_volume
end
def me_volume=(volume)
if @me_volume == volume
return
end
@me_volume = volume
me_play(@playing_me)
end
def se_volume
if @se_volume == nil
@se_volume = 1
end
return @se_volume
end
def se_volume=(volume)
if @se_volume == volume
return
end
@se_volume = volume
se_play(@playing_se)
end
=end
#=====================================================================
# 节拍控制
#=====================================================================
def bgm_pitch
if @bgm_pitch == nil
@bgm_pitch = 1
end
return @bgm_pitch
end
def bgm_pitch=(pitch)
if @bgm_pitch == pitch
return
end
@bgm_pitch = pitch
bgm_play(@playing_bgm)
end
def bgs_pitch
if @bgs_pitch == nil
@bgs_pitch = 1
end
return @bgs_pitch
end
def bgs_pitch=(pitch)
if @bgs_pitch == pitch
return
end
@bgs_pitch = pitch
bgs_play(@playing_bgs)
end
=begin
def me_pitch
if @me_pitch == nil
@me_pitch = 1
end
return @me_pitch
end
def me_pitch=(pitch)
if @me_pitch == pitch
return
end
@me_pitch = pitch
me_play(@playing_me)
end
def se_pitch
if @se_pitch == nil
@se_pitch = 1
end
return @se_pitch
end
def se_pitch=(pitch)
if @se_pitch == pitch
return
end
@se_pitch = pitch
se_play(@playing_se)
end
#--------------------------------------------------------------------------
# ● 获取演奏中 ME
#--------------------------------------------------------------------------
def playing_me
return @playing_me
end
#--------------------------------------------------------------------------
# ● 获取演奏中 SE
#--------------------------------------------------------------------------
def playing_se
return @playing_se
end
#--------------------------------------------------------------------------
# ● 停止 ME
#--------------------------------------------------------------------------
def se_stop
Audio.me_stop
@playing_me = nil
end
#--------------------------------------------------------------------------
# ● 停止 SE
#--------------------------------------------------------------------------
def se_stop
Audio.se_stop
@playing_se = nil
end
=end
#--------------------------------------------------------------------------
# ● 演奏 BGM
# bgm : 演奏的 BGM
#--------------------------------------------------------------------------
def bgm_play(bgm)
@playing_bgm = bgm
if bgm != nil and bgm.name != ""
Audio.bgm_play("Audio/BGM/" + bgm.name, bgm.volume * bgm_volume, bgm.pitch * bgm_pitch)
else
Audio.bgm_stop
end
Graphics.frame_reset
end
#--------------------------------------------------------------------------
# ● 演奏 BGS
# bgs : 演奏的 BGS
#--------------------------------------------------------------------------
def bgs_play(bgs)
@playing_bgs = bgs
if bgs != nil and bgs.name != ""
Audio.bgs_play("Audio/BGS/" + bgs.name, bgs.volume * bgs_volume, bgs.pitch * bgs_pitch)
else
Audio.bgs_stop
end
Graphics.frame_reset
end
#--------------------------------------------------------------------------
# ● ME 的演奏
# me : 演奏的 ME
#--------------------------------------------------------------------------
def me_play(me)
#@playing_me = me
if me != nil and me.name != ""
#Audio.me_play("Audio/ME/" + me.name, me.volume * me_volume, me.pitch * me_pitch)
Audio.me_play("Audio/ME/" + me.name, me.volume * @me_volume, me.pitch * @me_pitch) # 修改
else
Audio.me_stop
end
Graphics.frame_reset
end
#--------------------------------------------------------------------------
# ● SE 的演奏
# se : 演奏的 SE
#--------------------------------------------------------------------------
def se_play(se)
#@playing_se = se
if se != nil and se.name != ""
#Audio.se_play("Audio/SE/" + se.name, se.volume * se_volume, se.pitch * se_pitch)
Audio.se_play("Audio/SE/" + se.name, se.volume * @se_volume, se.pitch * @se_pitch) # 修改
end
end
end