Project1

标题: 【翻译】华丽战斗背景(已更新) [打印本页]

作者: 仲秋启明    时间: 2010-12-26 16:43
标题: 【翻译】华丽战斗背景(已更新)
本帖最后由 仲秋启明 于 2010-12-31 15:35 编辑
  1. #==============================================================================
  2. #    华丽战斗背景
  3. #    原作BY: modern algbera
  4. #    提供BY:企鹅达达
  5. #    翻译BY:仲秋启明
  6. #==============================================================================
  7. #==============================================================================
  8. # ● 设定
  9. #==============================================================================
  10. module ModernAlgebra
  11. #==============================================================================
  12. # ● 设定
  13. #  map_id => [scape_1_id, scape_2_id, ..., scape_n_id]     地图ID=> [背景图ID]
  14. #   when scape_id                                                               背景图ID
  15. #     parallax_name = ""                                                      背景图名
  16. #     z = 0                                                                            决定显示位置Z轴
  17. #     scroll_x = 0                                                                  X轴滚动
  18. #     scroll_y = 0                                                                  Y轴滚动
  19. #     zoom_x = 100                                                             X轴缩放
  20. #     zoom_y = 100                                                             Y轴缩放
  21. #     opacity = 255                                                              透明度
  22. #     blend_type = 0                                                            混合方式:0:普通,1:加法,2: 减法
  23. #     color = [r, g, b, a] #(default: [0, 0, 0, 0])                     颜色[红,绿,蓝,通道]
  24. #     tone = [r, g, b]     #(default: [0, 0, 0])                        
  25. #==============================================================================
  26.   MAP_BATTLE_SCAPES = {
  27.     1 => [1, 2, 3]
  28.   }
  29.   MAP_BATTLE_SCAPES.default = []
  30.   AREA_BATTLE_SCAPES = {
  31.     1 => [1, 2],
  32.     2 => [4, 5]
  33.   }
  34.   AREA_BATTLE_SCAPES.default = []
  35.   BattleScape = Struct.new (:parallax_name, :z, :scroll_x, :scroll_y,
  36.                 :zoom_x, :zoom_y, :blend_type, :color, :tone, :opacity)
  37.   def self.battle_scape (scape_id)
  38.     @battle_scapes = [] if @battle_scapes.nil?
  39.     return @battle_scapes[scape_id] if @battle_scapes[scape_id] != nil
  40.     parallax_name, blend_type, color, tone = "", 0, [0, 0, 0, 0], [0, 0, 0]
  41.     z, scroll_x, scroll_y, zoom_x, zoom_y, opacity = 0, 0, 0, 100, 100, 255
  42.     case scape_id
  43.     when 1
  44.       parallax_name = "MegaTronx BG"
  45.       z = 50
  46.     when 2
  47.       parallax_name = "CloudySky"
  48.       scroll_x = -5
  49.     when 3
  50.       parallax_name = "Fog"
  51.       z = 150
  52.       scroll_x = -10
  53.       scroll_y = 5
  54.       blend_type = 2
  55.       opacity = 100
  56.     when 4
  57.       parallax_name = "Bridge"
  58.       z = 50
  59.       zoom_x = 85
  60.       zoom_y = 130
  61.     when 5
  62.       parallax_name = "BlueSky"
  63.       scroll_x = 2
  64.     end
  65.     @battle_scapes[scape_id] = BattleScape.new (parallax_name, z, scroll_x,
  66.       scroll_y, (zoom_x / 100.0), (zoom_y / 100.0), blend_type, color, tone, opacity)
  67.     return @battle_scapes[scape_id]
  68.   end
  69.   def self.map_battle_scapes (map_id)
  70.     scapes = []
  71.     MAP_BATTLE_SCAPES[map_id].each { |scape_id| scapes.push (self.battle_scape (scape_id)) }
  72.     return scapes
  73.   end
  74.   def self.area_battle_scapes (area_id)
  75.     scapes = []
  76.     AREA_BATTLE_SCAPES[area_id].each { |scape_id| scapes.push (self.battle_scape (scape_id)) }
  77.     return scapes
  78.   end
  79. end
  80. class Game_Map
  81.   def battle_scapes
  82.     $data_areas.values.each { |area|
  83.       if $game_player.in_area? (area) && !ModernAlgebra.area_battle_scapes (area.id).empty?
  84.         return ModernAlgebra.area_battle_scapes (area.id)
  85.       end
  86.     }
  87.     return ModernAlgebra.map_battle_scapes (@map_id)
  88.   end
  89. end
  90. class Spriteset_Battle
  91.   alias modernalgbr_terraintypes_crtbttlebck_63b5 create_battleback
  92.   def create_battleback (*args)
  93.     if $BTEST
  94.       modernalgbr_terraintypes_crtbttlebck_63b5 (*args)
  95.       return
  96.     end
  97.     @battle_scapes = $game_map.battle_scapes
  98.     @battle_planes = []
  99.     @battle_planes_xy = []
  100.     @battle_scapes.each { |battle_scape|
  101.       plane = Plane.new (@viewport1)
  102.       plane.z = battle_scape.z
  103.       plane.bitmap = Cache.parallax (battle_scape.parallax_name)
  104.       plane.zoom_x, plane.zoom_y = battle_scape.zoom_x, battle_scape.zoom_y
  105.       plane.blend_type = battle_scape.blend_type
  106.       plane.color = Color.new (*battle_scape.color)
  107.       plane.tone = Tone.new (*battle_scape.tone)
  108.       plane.opacity = battle_scape.opacity
  109.       @battle_planes.push (plane)
  110.       @battle_planes_xy.push ([0,0])
  111.     }  
  112.     if @battle_planes.empty?
  113.       modernalgbr_terraintypes_crtbttlebck_63b5 (*args)
  114.     else
  115.       Graphics.frame_reset
  116.     end
  117.   end
  118.   alias modrnalgbra_terratas_dspsebkbmp_74bt dispose_battleback_bitmap
  119.   def dispose_battleback_bitmap (*args)
  120.     modrnalgbra_terratas_dspsebkbmp_74bt (*args) unless @battleback_sprite.nil?
  121.     @battle_planes.each { |plane| plane.bitmap.dispose unless plane.bitmap.disposed? }
  122.   end
  123.   alias modrenalbr_dspsbb_terrintypes_09b6 dispose_battleback
  124.   def dispose_battleback (*args)
  125.     modrenalbr_dspsbb_terrintypes_09b6 (*args) unless @battleback_sprite.nil?
  126.     @battle_planes.each { |plane| plane.dispose }
  127.   end
  128.   alias modalg_bbckupd_trrantypes_52n5 update_battleback
  129.   def update_battleback (*args)
  130.     if @battleback_sprite.nil?
  131.       @battle_planes.each_index { |i|
  132.         x_y = @battle_planes_xy[i]
  133.         plane = @battle_planes[i]
  134.         scape = @battle_scapes[i]
  135.         x_y[0] += (scape.scroll_x * 2)
  136.         x_y[1] += (scape.scroll_y * 2)
  137.         plane.ox, plane.oy = (x_y[0] / 16), (x_y[1] / 16)
  138.       }
  139.     else
  140.       modalg_bbckupd_trrantypes_52n5 (*args)
  141.     end
  142.   end
  143. end
复制代码
范例: 华丽战斗背景.rar (1.11 MB, 下载次数: 3649)

夕阳武士于2010-12-26 22:15补充以下内容:
我明白了,不仅有背景图还有滑动的远景以及雾形图,果然不错!

作者: zeroko    时间: 2010-12-26 20:16
则么华丽法。。。。?
作者: 夕阳武士    时间: 2010-12-26 22:11
咋不截个图= =


夕阳武士于2010-12-26 22:15补充以下内容:
我明白了,不仅有背景图还有滑动的远景以及雾形图,果然不错!
作者: 雪流星    时间: 2010-12-27 05:12
設定部份可以多一點說明,要不看不懂的人會不知道怎麼設定...
作者: summer92    时间: 2010-12-27 11:06
果断支持
作者: 高须小龙    时间: 2010-12-27 18:25
几个字也叫汉化- -




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1