Window_MessageBox
class Window_MessageBox < Window_Selectable
def initialize(x, y, width=544, height=64)
super(x, y, width, height)
end
def open(x, y, width, height, text)
self.contents.clear
self.refresh
self.x = x
self.y = y
self.width = width
self.contents.draw_text(0, 0, width, 32, text)
self.visible = true
self.activate
end
def close
self.visible = false
self.contents.clear
self.deactivate
end
end
利用
class Scene_Hoge < Scene_MenuBase
def start
@message_box = Window_MessageBox.new(0, 0)
@message_box.visible = false
@message_box.deactivate
@message_box.set_handler(:ok, method(:on_message_close))
@message_box.set_handler(:cancel, method(:on_message_close))
@any_command = Window_Command.new(0, 0)
@any_command.add_command("test", :test)
@any_command.set_handler(:ok, method(:view_message_box))
@any_command.activate
end
def on_message_close
@message_box.close
@any_command.activate
end
def view_message_box
@message_box.open(0, Graphics.height/2-32, 544, 60, "test")
end
end
改良を検討
- 複数行対応
- 表示時の効果
- マップから利用可能にする
- 少ないコードで表示できるようにする