Advertisement
DrDhoom

[RGSS2] Parallax Utils v1.1

Feb 7th, 2015
287
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 7.37 KB | None | 0 0
  1. # Parallax Utils v1.1 (VX)
  2. # by DrDhoom
  3. # drd-workshop.blogspot.com
  4.  
  5. module Dhoom
  6.   module Parallax_Utils
  7.     #HOW TO USE
  8.     #The script will automatically search for any parallax graphics.
  9.     #Put any of this after parallax filename
  10.     # _overlay
  11.     # _anim_(frame)
  12.     # _overlay_anim_(frame)
  13.     #You don't have to specify the total frame for animation, the script
  14.     #will do it automatically.
  15.     #example :
  16.     # Parallax filename = parallax_example
  17.     #   parallax_example_overlay
  18.     #   parallax_example_anim_1, parallax_example_anim_2, parallax_example_anim_3
  19.     #   parallax_example_overlay_anim_1
  20.    
  21.     #Put map ID here to disable any modified parallax properties
  22.     IGNORE_MAP = [5]
  23.     #Parallax animation speed
  24.     ANIM_SPEED = 10
  25.   end
  26. end
  27.  
  28. class Game_Map
  29.   attr_reader   :animated_parallax_name
  30.   attr_reader   :animated_parallax_total_frame
  31.   attr_reader   :overlay_parallax_name
  32.   attr_reader   :overlay_animated_parallax_name
  33.   attr_reader   :overlay_animated_parallax_total_frame
  34.  
  35.   alias dhoom_parutils_gmmap_calc_parallax_x calc_parallax_x
  36.   def calc_parallax_x(bitmap)
  37.     return @display_x / 8 unless Dhoom::Parallax_Utils::IGNORE_MAP.include?(@map_id)
  38.     return dhoom_parutils_gmmap_calc_parallax_x(bitmap)
  39.   end
  40.  
  41.   alias dhoom_parutils_gmmap_calc_parallax_y calc_parallax_y
  42.   def calc_parallax_y(bitmap)
  43.     return @display_y / 8 unless Dhoom::Parallax_Utils::IGNORE_MAP.include?(@map_id)
  44.     return dhoom_parutils_gmmap_calc_parallax_y(bitmap)
  45.   end
  46.  
  47.   alias dhoom_parutils_gmmap_setup setup
  48.   def setup(map_id)
  49.     dhoom_parutils_gmmap_setup(map_id)
  50.     return if Dhoom::Parallax_Utils::IGNORE_MAP.include?(@map_id)
  51.     setup_animated_parallax
  52.     setup_overlay_parallax
  53.     setup_overlay_animated_parallax
  54.   end
  55.  
  56.   def setup_animated_parallax
  57.     return unless any_animated_parallax?    
  58.     @animated_parallax_name = "#{@parallax_name}_anim_"
  59.     @animated_parallax_total_frame = get_frame(@animated_parallax_name)
  60.   end
  61.  
  62.   def setup_overlay_parallax
  63.     return unless any_overlay_parallax?
  64.     @overlay_parallax_name = "#{parallax_name}_overlay"
  65.   end
  66.  
  67.   def setup_overlay_animated_parallax
  68.     return if !any_overlay_animated_parallax?
  69.     @overlay_animated_parallax_name = "#{parallax_name}_overlay_anim_"
  70.     @overlay_animated_parallax_total_frame = get_frame(@overlay_animated_parallax_name)
  71.   end
  72.  
  73.   def get_frame(name)
  74.     frame = 1
  75.     while FileTest.exist?("Graphics/Parallaxes/#{name}#{frame}.png") do
  76.       frame += 1
  77.     end
  78.     frame -= 1
  79.     return frame
  80.   end
  81.  
  82.   def any_animated_parallax?
  83.     return FileTest.exist?("Graphics/Parallaxes/#{@parallax_name}_anim_1.png")
  84.   end  
  85.  
  86.   def any_overlay_parallax?
  87.     return FileTest.exist?("Graphics/Parallaxes/#{@parallax_name}_overlay.png")
  88.   end
  89.  
  90.   def any_overlay_animated_parallax?
  91.     return FileTest.exist?("Graphics/Parallaxes/#{@parallax_name}_overlay_anim_1.png")
  92.   end
  93. end
  94.  
  95. class Spriteset_Map
  96.   alias dhoom_parutils_sprsmap_create_parallax create_parallax
  97.   def create_parallax
  98.     dhoom_parutils_sprsmap_create_parallax
  99.     @animated_parallax = Plane.new(@viewport1)
  100.     @animated_parallax.z = -100
  101.     @overlay_parallax = Plane.new(@viewport3)
  102.     @overlay_animated_parallax = Plane.new(@viewport3)
  103.   end
  104.  
  105.   alias dhoom_parutils_sprsmap_update update
  106.   def update
  107.     dhoom_parutils_sprsmap_update
  108.     update_animated_parallax
  109.     update_overlay_parallax
  110.     update_overlay_animated_parallax
  111.   end
  112.  
  113.   def update_animated_parallax    
  114.     return unless $game_map.any_animated_parallax?
  115.     if @animated_parallax_name != $game_map.animated_parallax_name
  116.       @animated_parallax_name = $game_map.animated_parallax_name
  117.       @animated_parallax_frame = 1
  118.       @animated_parallax_wait = Dhoom::Parallax_Utils::ANIM_SPEED
  119.       if @animated_parallax.bitmap != nil
  120.         @animated_parallax.bitmap.dispose
  121.         @animated_parallax.bitmap = nil        
  122.       end
  123.       if @animated_parallax_name != "" and $game_map.any_animated_parallax?
  124.         update_animated_parallax_graphic
  125.       end
  126.       Graphics.frame_reset
  127.     end    
  128.     if @animated_parallax_wait > 0
  129.       @animated_parallax_wait -= 1
  130.     else
  131.       if @animated_parallax_frame < $game_map.animated_parallax_total_frame
  132.         @animated_parallax_frame += 1
  133.       else
  134.         @animated_parallax_frame = 1
  135.       end
  136.       update_animated_parallax_graphic
  137.       @animated_parallax_wait = Dhoom::Parallax_Utils::ANIM_SPEED
  138.     end
  139.     @animated_parallax.ox = $game_map.calc_parallax_x(@animated_parallax.bitmap)
  140.     @animated_parallax.oy = $game_map.calc_parallax_y(@animated_parallax.bitmap)
  141.   end
  142.  
  143.   def update_animated_parallax_graphic
  144.     @animated_parallax.bitmap = Cache.parallax("#{@animated_parallax_name}#{@animated_parallax_frame}")
  145.   end
  146.  
  147.   def update_overlay_parallax
  148.     return unless $game_map.any_overlay_parallax?
  149.     if @overlay_parallax_name != $game_map.overlay_parallax_name
  150.       @overlay_parallax_name = $game_map.overlay_parallax_name
  151.       if @overlay_parallax.bitmap != nil
  152.         @overlay_parallax.bitmap.dispose
  153.         @overlay_parallax.bitmap = nil        
  154.       end
  155.       if @overlay_parallax_name != "" and $game_map.any_overlay_parallax?
  156.         @overlay_parallax.bitmap = Cache.parallax(@overlay_parallax_name)
  157.       end
  158.       Graphics.frame_reset
  159.     end
  160.     @overlay_parallax.ox = $game_map.calc_parallax_x(@overlay_parallax.bitmap)
  161.     @overlay_parallax.oy = $game_map.calc_parallax_y(@overlay_parallax.bitmap)
  162.   end
  163.  
  164.   def update_overlay_animated_parallax
  165.     return unless $game_map.any_overlay_animated_parallax?
  166.     if @overlay_animated_parallax_name != $game_map.overlay_animated_parallax_name
  167.       @overlay_animated_parallax_name = $game_map.overlay_animated_parallax_name
  168.       @overlay_animated_parallax_frame = 1
  169.       @overlay_animated_parallax_wait = Dhoom::Parallax_Utils::ANIM_SPEED
  170.       if @overlay_animated_parallax.bitmap != nil
  171.         @overlay_animated_parallax.bitmap.dispose
  172.         @overlay_animated_parallax.bitmap = nil        
  173.       end
  174.       if @overlay_animated_parallax_name != "" and $game_map.any_overlay_animated_parallax?
  175.         update_overlay_animated_parallax_graphic
  176.       end
  177.       Graphics.frame_reset
  178.     end
  179.     if @overlay_animated_parallax_wait > 0
  180.       @overlay_animated_parallax_wait -= 1
  181.     else
  182.       if @overlay_animated_parallax_frame < $game_map.overlay_animated_parallax_total_frame
  183.         @overlay_animated_parallax_frame += 1
  184.       else
  185.         @overlay_animated_parallax_frame = 1
  186.       end
  187.       update_overlay_animated_parallax_graphic
  188.       @overlay_animated_parallax_wait = Dhoom::Parallax_Utils::ANIM_SPEED
  189.     end
  190.     @overlay_animated_parallax.ox = $game_map.calc_parallax_x(@overlay_animated_parallax.bitmap)
  191.     @overlay_animated_parallax.oy = $game_map.calc_parallax_y(@overlay_animated_parallax.bitmap)
  192.   end
  193.  
  194.   def update_overlay_animated_parallax_graphic
  195.     @overlay_animated_parallax.bitmap = Cache.parallax("#{@overlay_animated_parallax_name}#{@overlay_animated_parallax_frame}")
  196.   end
  197.  
  198.   alias dhoom_parutils_sprsmap_dispose_parallax dispose_parallax
  199.   def dispose_parallax
  200.     dhoom_parutils_sprsmap_dispose_parallax
  201.     @animated_parallax.dispose unless @animated_parallax.nil?
  202.     @overlay_parallax.dispose unless @overlay_parallax.nil?
  203.     @overlay_animated_parallax.dispose unless @overlay_animated_parallax.nil?
  204.   end
  205. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement