#============================================================================== # ■ XP-RGSS-30 クウォータービュー [Ver.1.0.0] by Claimh #------------------------------------------------------------------------------ # 3人パーティー用クウォータービュー戦闘 #============================================================================== #============================================================================== # ■ Game_Actor #------------------------------------------------------------------------------ # クウォータービュー用に配置変更 #============================================================================== class Game_Actor < Game_Battler #-------------------------------------------------------------------------- # ● バトル画面 X 座標の取得(再定義) #-------------------------------------------------------------------------- def screen_x # パーティ内の並び順から X 座標を計算して返す if self.index != nil return self.index * 110 + 340 else return 0 end end #-------------------------------------------------------------------------- # ● バトル画面 Y 座標の取得(再定義) #-------------------------------------------------------------------------- def screen_y # パーティ内の並び順から Y 座標を計算して返す if self.index != nil return 470 - self.index * 30 else return 0 end end end #============================================================================== # ■ Scene_Battle #------------------------------------------------------------------------------ #  コマンドウィンドウの位置補正 #============================================================================== class Scene_Battle #-------------------------------------------------------------------------- # ● アクターコマンドウィンドウのセットアップ #-------------------------------------------------------------------------- alias phase3_setup_command_window_qv phase3_setup_command_window def phase3_setup_command_window phase3_setup_command_window_qv # アクターコマンドウィンドウの位置を設定 @actor_command_window.x = @actor_index * 110 + 250 @actor_command_window.y = 150 - @actor_index * 30 end end #============================================================================== # ■ Window_BattleStatus #------------------------------------------------------------------------------ # ウィンドウを透明化&クウォータービュー用に配置変更 #============================================================================== class Window_BattleStatus < Window_Base #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- def initialize super(0, 280, 320, 200) self.contents = Bitmap.new(width - 32, height - 32) self.opacity = 0 @level_up_flags = [false, false, false, false] refresh end #-------------------------------------------------------------------------- # ● リフレッシュ(再定義) #-------------------------------------------------------------------------- def refresh self.contents.clear @item_max = $game_party.actors.size for i in 0...$game_party.actors.size actor = $game_party.actors[i] actor_y = i * 56 + 4 draw_actor_name(actor, 0, actor_y) draw_actor_hp(actor, 140, actor_y, 120) draw_actor_sp(actor, 140, actor_y+24, 120) if @level_up_flags[i] self.contents.font.color = normal_color self.contents.draw_text(0, actor_y+24, 120, 32, "LEVEL UP!") else draw_actor_state(actor, 0, actor_y+24) end end end end #============================================================================== # ■ Spriteset_Battle #------------------------------------------------------------------------------ # バトルバックを拡大し、全体表示。(単独使用可能) #============================================================================== class Spriteset_Battle #-------------------------------------------------------------------------- # ● オブジェクト初期化(再定義) #-------------------------------------------------------------------------- def initialize # ビューポートを作成 @viewport1 = Viewport.new(0, 0, 640, 480) # バトルバック全体表示 @viewport2 = Viewport.new(0, 0, 640, 480) @viewport3 = Viewport.new(0, 0, 640, 480) @viewport4 = Viewport.new(0, 0, 640, 480) @viewport2.z = 101 @viewport3.z = 200 @viewport4.z = 5000 # バトルバックスプライトを作成 @battleback_sprite = Sprite.new(@viewport1) # バトルバック拡大 @battleback_sprite.zoom_x = 1.5 @battleback_sprite.zoom_y = 1.5 # エネミースプライトを作成 @enemy_sprites = [] for enemy in $game_troop.enemies.reverse @enemy_sprites.push(Sprite_Battler.new(@viewport1, enemy)) end # アクタースプライトを作成 @actor_sprites = [] @actor_sprites.push(Sprite_Battler.new(@viewport2)) @actor_sprites.push(Sprite_Battler.new(@viewport2)) @actor_sprites.push(Sprite_Battler.new(@viewport2)) @actor_sprites.push(Sprite_Battler.new(@viewport2)) # 天候を作成 @weather = RPG::Weather.new(@viewport1) # ピクチャスプライトを作成 @picture_sprites = [] for i in 51..100 @picture_sprites.push(Sprite_Picture.new(@viewport3, $game_screen.pictures[i])) end # タイマースプライトを作成 @timer_sprite = Sprite_Timer.new # フレーム更新 update end end