Window BackGround Picture


Windowの背景を個別の画像に変更してみるスクリプト。 スクリプト導入後、 Window_○○の initialize 処理にて make_bg([file name], [透明度]) を記述するだけです。 ※背景画像はWindowSkinフォルダにインポートしてください。 変更点 まだなし
#==============================================================================
# ■ ウィンドウの背景を画像で描画 β By 貪藻矢射妥←
# 
#  ウィンドウをウィンドウスキンではなく、画像で描画します。
# 
# ○使用方法
#  Window_○○ の initialize 処理にて
# 
#  make_bg([file name], [透明度])
# 
# を記載するだけ
# 
# ※背景画像はWindowSkinフォルダにインポートしてください。
#   
#==============================================================================
# 更新っぽいもの
# まだなし

$OuterFlgs = {} if $OuterFlgs == nil
$OuterFlgs["Window_BG"] = true

module DIAMOND
  # デフォルト透明度
  DEFAULT_OPA = 160
end

#==============================================================================
# ■ Window_Base
#------------------------------------------------------------------------------
#  ゲーム中のすべてのウィンドウのスーパークラスです。
#==============================================================================

class Window_Base < Window
  include DIAMOND
  #--------------------------------------------------------------------------
  # ● 公開インスタンス変数
  #--------------------------------------------------------------------------
  attr_accessor :bg_sprite                # 背景スプライト
  
  #--------------------------------------------------------------------------
  # ● 背景作成
  #     file : 背景画像サイズ
  #     opa  : 画像の透明度
  #--------------------------------------------------------------------------
  def make_bg(file, opa = DEFAULT_OPA)
    @bg_sprite = Sprite.new
    self.opacity = 0
    @bg_sprite.bitmap = RPG::Cache.windowskin(file)
    @bg_sprite.opacity = opa
    # アップデート
    update_bg
    
    # 最初は非表示にしておく
    @bg_sprite.visible = false
  end
  #--------------------------------------------------------------------------
  # ● 背景更新
  #--------------------------------------------------------------------------
  def update_bg
    if @bg_sprite != nil
      # 親に合わせてスプライトの表示をオンオフする
      @bg_sprite.visible = self.visible
      # 描画位置更新
      @bg_sprite.x = self.x + (self.width - @bg_sprite.bitmap.width) / 2
      @bg_sprite.y = self.y
      @bg_sprite.z = self.z - 1
    end
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新
  #--------------------------------------------------------------------------
  alias dia_update update
  def update
    if @bg_sprite != nil
      update_bg
    end
    
    #super
    dia_update
  end
  #--------------------------------------------------------------------------
  # ● 解放
  #--------------------------------------------------------------------------
  alias dia_dispose dispose
  def dispose
    # 背景を画像にしている場合は解放
    if @bg_sprite != nil
      @bg_sprite.bitmap.dispose
      @bg_sprite.dispose
      @bg_sprite = nil
    end
    
    #super
    dia_dispose
  end
end

戻る