#============================================================================== # ■ ウィンドウの背景を画像で描画 β 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 |