【解決!】メッセージ表示位置(下)について

サワラ

【解決!】メッセージ表示位置(下)について

投稿記事by サワラ » 2016年12月05日(月) 22:34

ツクールVXAceについてです。
デフォルトでメッセージウィンドウの表示位置は 上・中・下 の3つ中から指定できますが、
この 下 の位置を少し上に上げたいと思っています。
20161205_202105.png
20161205_202105.png (74.12 KiB) 閲覧数: 1454 回

↑のSSだとピンクの枠がデフォルトの位置(下)・黄色の枠が希望したい表示箇所(下)です。
よろしければどなたか、お教え願います。
最後に編集したユーザー サワラ on 2016年12月06日(火) 17:45 [ 編集 1 回目 ]

faida
記事: 216
登録日時: 2015年12月17日(木) 16:44

Re: メッセージ表示位置(下)について

投稿記事by faida » 2016年12月05日(月) 23:54

ただ単純に改造するだけなら、Window_Messageのデフォルト196行目~に

コード: 全て選択

  #--------------------------------------------------------------------------
  # ● ウィンドウ位置の更新
  #--------------------------------------------------------------------------
  def update_placement
    @position = $game_message.position
    self.y = @position * (Graphics.height - height) / 2
    @gold_window.y = y > 0 ? 0 : Graphics.height - @gold_window.height
  end
こんなのがあるので

コード: 全て選択

  #--------------------------------------------------------------------------
  # ● ウィンドウ位置の更新
  #--------------------------------------------------------------------------
  def update_placement
    @position = $game_message.position
    self.y = @position * (Graphics.height - height) / 2
    @gold_window.y = y > 0 ? 0 : Graphics.height - @gold_window.height
    self.y -= 24 if @position == 2 # ここ
  end
# ここ を追加して完成です。数値の24は適当に変えてください。

※おまけの素材

コード: 全て選択

=begin
◆概要
メッセージウィンドウのY座標を調整できるようにします。

◆機能
・設定項目でどうぞ。
・イベントコマンドで「set_meswindow_pos(表示位置番号, y)」と記入すると、
その表示位置でのY座標調整をyにします。
・イベントコマンドで「plus_meswindow_pos(表示位置番号, y)」と記入すると、
その表示位置でのY座標調整にyを加算します。ループでちょっとずつ調整したい人向け。
・イベントコマンドで「init_meswindow_pos」と記入すると、
全ての表示位置でのY座標調整を初期化します。

◆仕様
・そもそもピッタリなので、X座標はいじれません。

◆使用上の注意
・★……エイリアス ○……新規定義

◆作者:faida @faida3983

=end

module FAI_MWPOS
  # 設定項目:表示位置ごとの初期調整 [上, 中, 下]
  INI_MWPOS = [24, 0, -24]
end

#==============================================================================
# ■ Game_Message
#==============================================================================

class Game_Message
  include FAI_MWPOS
  #--------------------------------------------------------------------------
  # ○ 公開インスタンス変数
  #--------------------------------------------------------------------------
  attr_accessor :window_pos               # ☆追加
  #--------------------------------------------------------------------------
  # ★ オブジェクト初期化
  #--------------------------------------------------------------------------
  alias fai_mwpos_initialize clear
  def initialize
    fai_mwpos_initialize
    initialize_placement
  end
  #--------------------------------------------------------------------------
  # ○ 初期設定に戻す
  #--------------------------------------------------------------------------
  def initialize_placement(pos = nil)
    if pos
      @window_pos[pos] = INI_MWPOS[pos]
    else
      @window_pos = INI_MWPOS
    end
  end
end

class Game_Interpreter
  #--------------------------------------------------------------------------
  # ○ 追加イベントコマンド
  #--------------------------------------------------------------------------
  def set_meswindow_pos(pos, y)
    if pos
      $game_message.window_pos[pos] = y
    else
      (0...$game_message.window_pos.size).each{|i|$game_message.window_pos[i]=y}
    end
  end
  def plus_meswindow_pos(pos, y)
    if pos
      $game_message.window_pos[pos] += y
    else
     (0...$game_message.window_pos.size).each{|i|$game_message.window_pos[i]+=y}
    end
  end
  def init_meswindow_pos(pos = nil)
    $game_message.initialize_placement(pos)
  end
end

#==============================================================================
# ■ Window_Message
#==============================================================================

class Window_Message < Window_Base
  #--------------------------------------------------------------------------
  # ★ ウィンドウ位置の更新
  #--------------------------------------------------------------------------
  alias fai_mwpos_update_placement update_placement
  def update_placement
    fai_mwpos_update_placement
    self.y += $game_message.window_pos[@position]
    @gold_window.y = y >= @gold_window.height ? 0 :
    Graphics.height - @gold_window.height # ここ再定義みたいなもの
  end
end
---------------------------------------------
自作の(改造でない)スクリプト素材に
関しては、リードミーもしくは作中に
「faida」と記名していただければ
利用可能です。
サワラ

Re: メッセージ表示位置(下)について

投稿記事by サワラ » 2016年12月06日(火) 16:27

わああfaidaさんこんにちは、早速ありがとうございます!!
デフォルトの位置だとあまりにも下に寄り過ぎている気がして、気になって仕方がなかったのですが今回もとても助かりました(*'ω'*)
改造も上手くいき、おまけのスクリプトも大事に使わせていただこうと思います!!

“VX / Ace:質問” へ戻る