- #============================================================================== 
- # ■ RGSS3 マップズーム Ver1.00 by 星潟 
- # ■ RGSS3 地图缩放 Ver1.00 by 星潟      翻译:戏蹑群星斗 
- #------------------------------------------------------------------------------ 
- #地图缩放。就是这样。 
- #由于缩放状态保存的数据将被保留(就是存档会保留缩放)。请注意 
- #============================================================================== 
- # 使用事件命令的脚本。 
- #------------------------------------------------------------------------------ 
- # map_zoom(150) 
- #  
- # 在这种情况下,它会放大到150%。 
- #------------------------------------------------------------------------------ 
- # map_zoom(300) 
- #  
- # 在这种情况下,它会放大到300%。 
- #------------------------------------------------------------------------------ 
- # map_zoom 
- #  
- # 在这种情况下,放大解除。 
- #============================================================================== 
- # 100未満のズーム(縮小)や2000%を超えるのズームには制限をかけてあります。 
- # 因此,100是最小值,最大值2000。 
- #============================================================================== 
- class Game_System 
-   attr_accessor :zoom_mode 
-   #-------------------------------------------------------------------------- 
-   # ズームモード 
-   #-------------------------------------------------------------------------- 
-   def zoom_mode 
-     @zoom_mode ||= 100 
-   end 
- end 
- class Spriteset_Map 
-   #-------------------------------------------------------------------------- 
-   # ビューポートの作成 
-   #-------------------------------------------------------------------------- 
-   alias create_viewports_zoommap create_viewports 
-   def create_viewports 
-     create_viewports_zoommap 
-     @zoommap = ZoomMap.new(@viewport1,@viewport2) 
-   end 
-   #-------------------------------------------------------------------------- 
-   # 更新処理 
-   #-------------------------------------------------------------------------- 
-   alias update_zoommap update 
-   def update 
-     @zoommap.update 
-     update_zoommap 
-   end 
-   #-------------------------------------------------------------------------- 
-   # 解放処理 
-   #-------------------------------------------------------------------------- 
-   alias dispose_zoommap dispose 
-   def dispose 
-     @zoommap.dispose 
-     dispose_zoommap 
-   end 
- end 
- class ZoomMap < Sprite_Base 
-   #-------------------------------------------------------------------------- 
-   # 初期化 
-   #-------------------------------------------------------------------------- 
-   def initialize(v1,v2) 
-     super(v2) 
-     @viewport_data = v1 
-     @zoom_rate = $game_system.zoom_mode 
-     @zoom_bitmap = nil 
-   end 
-   #-------------------------------------------------------------------------- 
-   # 解放 
-   #-------------------------------------------------------------------------- 
-   def dispose 
-     @zoom_bitmap.dispose if @zoom_bitmap && !@zoom_bitmap.disposed? 
-     super 
-   end 
-   #-------------------------------------------------------------------------- 
-   # 更新処理 
-   #-------------------------------------------------------------------------- 
-   def update 
-     self.visible = @zoom_rate != 100 
-     @zoom_bitmap.dispose if @zoom_bitmap && !@zoom_bitmap.disposed? 
-     if $game_system.zoom_mode != 100 or @zoom_rate != 100 
-       if @zoom_rate != $game_system.zoom_mode 
-         d = (@zoom_rate - $game_system.zoom_mode).to_i 
-         case d 
-         when 0..9;i = 1 
-         when 10..99;i = 2 
-         when 100..999;i = 3 
-         else; i = 4 
-         end 
-         @zoom_rate += (@zoom_rate < $game_system.zoom_mode) ? i : -i 
-       end 
-       zm = @zoom_rate.to_f / 100 
-       @viewport_data.z += 10000000 
-       @zoom_bitmap = Graphics.snap_to_bitmap 
-       self.bitmap = @zoom_bitmap 
-       w = self.bitmap.width 
-       h =self.bitmap.height 
-       self.ox = [[0,((w * zm / 2) - w / 2) / zm + (($game_player.screen_x - w / 2).to_f)].max,(w * zm - w) / zm].min 
-       self.oy = [[0,((h * zm / 2) - h / 2) / zm + (($game_player.screen_y - 16 - h / 2).to_f)].max,(h * zm - h) / zm].min 
-       self.zoom_x = zm 
-       self.zoom_y = zm 
-       self.visible = true 
-       @viewport_data.z -= 10000000 
-     end 
-     super 
-   end 
- end 
- class Game_Interpreter 
-   #-------------------------------------------------------------------------- 
-   # ズーム 
-   #-------------------------------------------------------------------------- 
-   def map_zoom(rate = 100) 
-     $game_system.zoom_mode = [[rate,100].max,2000].min 
-   end 
- end