# ▼▲▼ No108. バトルバック・Full-View ▼▲▼ # # update 2006/ 3/27 # #------------------------------------------------------------------------------ # # ▽ Full-View システム ▽ # #============================================================================== # ■ Spriteset_Battle #============================================================================== class Spriteset_Battle #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- alias xrxs_bp8_initialize initialize def initialize # 呼び戻す xrxs_bp8_initialize # グラフィックスアレイを取得 # ビューポート 0 を作成 w = 640 h = 480 x = 320 - w / 2 y = 240 - h / 2 @viewport0 = Viewport.new(x, y, w, h) @viewport0.z = 0 # ビューポート 1 の設定を変更 @viewport1.z += 1 @viewport1.rect.height = 480 # バトルバックスプライトを再作成 (ビューポート 0 を使用) @battleback_sprite.dispose @battleback_sprite = Sprite.new(@viewport0) @battleback_name = "" # バトルバックのフレーム更新 update_battleback end #-------------------------------------------------------------------------- # ● 解放 #-------------------------------------------------------------------------- alias xrxs_bp8_dispose dispose def dispose # 呼び戻す xrxs_bp8_dispose # ビューポートを解放 @viewport0.dispose end #-------------------------------------------------------------------------- # ● フレーム更新 #-------------------------------------------------------------------------- alias xrxs_bp8_update update def update # フレーム更新 (バトルバック) update_battleback # フレーム更新 (可動カメラ) update_xcam if defined? update_xcam # 呼び戻す xrxs_bp8_update # 画面のシェイク位置を設定 @viewport0.ox = $game_screen.shake if @viewport0 != nil end #-------------------------------------------------------------------------- # ○ フレーム更新 (バトルバック) #-------------------------------------------------------------------------- def update_battleback # バトルバックのファイル名が現在のものと違う場合 if @battleback_name != $game_temp.battleback_name @battleback_name = $game_temp.battleback_name if @battleback_sprite.bitmap != nil @battleback_sprite.bitmap.dispose end # グラフィックスアレイを取得 w = 640 h = 480 # バトルバックの取得と拡大 bg = RPG::Cache.battleback(@battleback_name) xga = Bitmap.new(w, h) xga.stretch_blt(xga.rect, bg, bg.rect) # XGAをバトルバックに設定 @battleback_sprite.bitmap = xga end end end #============================================================================== # ---「戦闘中の"画面"アニメの位置修正」モジュール --- #============================================================================== module XRXS_FullScreen_AnimationOffset def animation_set_sprites(sprites, cell_data, position) super for i in 0..15 sprite = sprites[i] pattern = cell_data[i, 0] if sprite == nil or pattern == nil or pattern == -1 next end if position == 3 if self.viewport != nil sprite.y = 160 # この一行だけ変更 sprite.y += cell_data[i, 2] end end end end end class Sprite_Battler < RPG::Sprite include XRXS_FullScreen_AnimationOffset end