読者です 読者をやめる 読者になる 読者になる

気ままなタンス*プログラミングなどのノートブック

プログラミングやRPGツクール、DTM、VOCALOIDについてのんびり書きます。

【雑記】RPGツクールVXaceで簡易メッセージボックスを作る

Window_MessageBox

  • 1行表示しか対応していない
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

f:id:rinne_grid2_1:20151026072630p:plain

改良を検討

  • 複数行対応
  • 表示時の効果
  • マップから利用可能にする
  • 少ないコードで表示できるようにする