class BGM_Display def initialize @bgm = nil @me = nil @waiting = 0 @sprite1 = Sprite.new @sprite2 = Sprite.new @sprite1.bitmap = Bitmap.new(160, 32) @sprite2.bitmap = Bitmap.new(160, 224) @sprite2.src_rect = Rect.new(0, 0, 160, 32) self.x = 480 self.y = 416 self.z = 999 refresh end def refresh if @me == nil || @me.name =="" if @bgm == nil || @bgm.name == "" @sprite2.bitmap.clear return end @sprite1.bitmap.clear @sprite1.bitmap.draw_text(0, 0, 160, 32, "BGM:") @texts = @bgm.name.split(/-/) else @sprite1.bitmap.clear @sprite1.bitmap.draw_text(0, 0, 160, 32, "ME:") @texts = @me.name.split(/-/) end ([email][email protected][/email]).each do |i| draw_item(i) end end def draw_item(i) x = 4 y = 32 * (2 * i + 1) @sprite2.bitmap.fill_rect(x, y, 160, 32, Color.new(0,0,0,0)) @sprite2.bitmap.draw_text(x, y ,160, 32, @texts[i]) end def x=(x) @sprite1.x = x @sprite2.x = x end def y=(y) @sprite1.y = y @sprite2.y = y + 32 end def z=(z) @sprite1.z = z @sprite2.z = z end def update if $game_temp.playing_me != nil @me = $game_temp.playing_me $game_temp.playing_me = nil refresh @sprite2.src_rect.y = 0 return end if $game_system.playing_bgm != @bgm @bgm = $game_system.playing_bgm refresh @sprite2.src_rect.y = 0 return end if @waiting > 0 @waiting -= 1 return end @sprite2.src_rect.y += 1 if @sprite2.src_rect.y >= 192 @sprite2.src_rect.y -= 192 if @me != nil @me = nil refresh end end if @sprite2.src_rect.y % 64 == 32 @waiting = 40 end end def dispose @sprite1.bitmap.dispose @sprite2.bitmap.dispose @sprite1.dispose @sprite2.dispose end end class Game_Temp attr_accessor :playing_me end class Game_System alias rb_me_play_20141124 me_play def me_play(me) $game_temp.playing_me = me rb_me_play_20141124(me) end end class Scene_Map alias rb_main_20141122 main def main @bgm_display = BGM_Display.new rb_main_20141122 @bgm_display.dispose end alias rb_update_20141122 update def update @bgm_display.update rb_update_20141122 end end