ボトムキーヘルプ in VXA



今は無きスクリプトシェルフ(のOut of Support Scripts)の
ステータス・ウィンドウインフロントにあったボトムキーヘルプを参考に拡張を行ってみました。

※ちなみに、これだけを導入してもなにも使えませんが・・・

変更点
まだなし

#==============================================================================
# ○ボトムキーヘルプ in VX Ace By 貪藻矢射妥←
#  今は無きスクリプトシェルフ(のOut of Support Scripts)の
#  ステータス・ウィンドウインフロントにあったボトムキーヘルプを参考に
#  拡張を行ってみました。
#==============================================================================
# 変更履歴
# まだなし

module BTN_SET
  # キー情報の色
  KEY_COLOR  = Color.new(160, 255, 255, 255)
  # ヘルプの色
  DRAW_COLOR = Color.new(180, 255, 220, 255)
  # 描画フォント
  DRAW_FONT = ["HGPゴシックM", Font.default_name]
  
  # ボタンの画像
  # ※画像はGraphics/Systemフォルダにインポートしてください
  BTN_A     = "btn_a"
  BTN_B     = "btn_b"
  BTN_C     = "btn_c"
  BTN_X     = "btn_x"
  BTN_Y     = "btn_y"
  BTN_Z     = "btn_z"
  
  BTN_LR    = "btn_2lr"
  BTN_XY    = "btn_2xy"
  
  BTN_CLR   = "btn_clr"
  BTN_CUD   = "btn_cud"
  BTN_CLRUD = "btn_clrud"
  
  # ボタンの画像セット
  # ※ボタンを画像にする場合、キー情報は必ずこのハッシュのキーにしてください
  BTN_HASH = {
    "A"   =>BTN_A, 
    "B"   =>BTN_B, 
    "C"   =>BTN_C, 
    "X"   =>BTN_X, 
    "Y"   =>BTN_Y, 
    "Z"   =>BTN_Z, 
    "LR"  =>BTN_LR, 
    "XY"  =>BTN_XY, 
    "←→"=>BTN_CLR, 
    "↑↓"=>BTN_CUD, 
    "矢印"=>BTN_CLRUD, 
  }
  # 画像を使うかどうか
  USE_PIC = true
  # キー情報の描画サイズ
  KEY_SIZE = 20
  # ヘルプの描画サイズ
  DRAW_SIZE = 16
  # 余白サイズ
  BLANK = 24
end


#==============================================================================
# □ Window_BottomKeyHelp
#------------------------------------------------------------------------------
#     画面下で操作説明をする透明なウィンドウです。
#==============================================================================
class Window_BottomKeyHelp < Window_Base
  include BTN_SET
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  def initialize
    super(0, 416-48, 544, 48)
    self.windowskin = nil
    clear
  end
  #--------------------------------------------------------------------------
  # ○ クリア
  #--------------------------------------------------------------------------
  def clear
    contents.clear
    @now_x = 544 - 32
  end
  #--------------------------------------------------------------------------
  # ○ 追加
  #   key         : ボタンの情報
  #   explanation : ヘルプ
  #--------------------------------------------------------------------------
  def add(key, explanation)
    # 描画位置の計算
    font = contents.font.name
    root_color = contents.font.color
    contents.font.name = DRAW_FONT
    
    if USE_PIC
      x = KEY_SIZE
    else
      contents.font.size = KEY_SIZE
      x  = contents.text_size(key).width
    end
    contents.font.size = DRAW_SIZE
    x += contents.text_size(explanation).width + 8
    @now_x -= x
    # 描写
    if USE_PIC
      pic = Cache.system(BTN_HASH[key])
      contents.blt(@now_x, 0 + 4, pic, pic.rect)
      
      # アイコンサイズが24×24じゃない場合はこっち?
      #dest_rect = Rect.new(@now_x, 0 + 4, KEY_SIZE, KEY_SIZE)
      #contents.stretch_blt(dest_rect, pic, pic.rect)
      
      pic.dispose
    else
      contents.font.size = KEY_SIZE
      contents.font.color = KEY_COLOR
      draw_text(@now_x, 0, x, 32, key)
    end
    contents.font.size = DRAW_SIZE
    contents.font.color = DRAW_COLOR
    draw_text(@now_x, 0, x, 32, explanation, 2)
    # 余白の設定
    if @now_x < 0
      msgbox "描画しきれません!"
    end
    @now_x -= BLANK
    
    contents.font.name = font
    contents.font.color = root_color
  end
  #--------------------------------------------------------------------------
  # ○ セッティング
  #  hash : キーとヘルプのハッシュ
  #         (ハッシュの内容が1つしかない場合、addでOKだったり・・・)
  #--------------------------------------------------------------------------
  def set_bottom_help(hash)
    for key in hash.keys
      add(key, hash[key])
    end
  end
end
ちなみに、ボトムキーヘルプ用アイコン素材はこちら

戻る