From 0b3fc4527b474eb19a9a018cb3cff063785cb1ea Mon Sep 17 00:00:00 2001 From: Michael Shirt Date: Tue, 27 Sep 2016 10:29:53 -0600 Subject: [PATCH] Added fading water animation for blue and green areas. This cycles the panorama through 3 different images, fading them in as they show up. --- scripts/Game_Map.rb | 8 +++++++ scripts/Spriteset_Map.rb | 46 +++++++++++++++++++++++++++++++++++++++- 2 files changed, 53 insertions(+), 1 deletion(-) diff --git a/scripts/Game_Map.rb b/scripts/Game_Map.rb index 7733c69..0584621 100644 --- a/scripts/Game_Map.rb +++ b/scripts/Game_Map.rb @@ -32,6 +32,7 @@ class Game_Map attr_accessor :clamped_y # panorama is vertically clamped? attr_accessor :pan_onetoone # panorama is 1:1 attr_accessor :pan_animate # panorama is animated + attr_accessor :pan_fade_animate # panorama is fade animated attr_accessor :pan_zoom # panorama zoom attr_accessor :wrapping # map is wrapping? attr_accessor :pan_offset_y # offset of y-coord of panorama @@ -58,12 +59,18 @@ class Game_Map ANIMATED = [ 'blue_water', ] + FADE_ANIMATION_PANORAMA = [ + 'dark_water', + 'green_water', + ] ONETOONE = [ 'blue_water', + 'green_water', 'dark_water', ] NOZOOM = [ 'dark_water', + #'green_water', ] #-------------------------------------------------------------------------- # * Object Initialization @@ -153,6 +160,7 @@ class Game_Map end # Animated/One-to-one/zoom @pan_animate = ANIMATED.include? @panorama_name + @pan_fade_animate = FADE_ANIMATION_PANORAMA.include? @panorama_name @pan_onetoone = ONETOONE.include? @panorama_name @pan_zoom = NOZOOM.include?(@panorama_name) ? 1 : 2 # Unwrap map diff --git a/scripts/Spriteset_Map.rb b/scripts/Spriteset_Map.rb index 0ea9141..2ec8df9 100644 --- a/scripts/Spriteset_Map.rb +++ b/scripts/Spriteset_Map.rb @@ -39,6 +39,14 @@ class Spriteset_Map # Make panorama plane @panorama = Plane.new(@viewport_bg) @panorama.z = -1000 + + if $game_map.pan_fade_animate + @panorama2 = Plane.new(@viewport_bg) + @panorama2.z = -999 + @panorama2.opacity = 0 + @pan_frame_index = 0 + end + # Make fog plane @fog = Plane.new(@viewport) @fog.z = 3000 @@ -85,6 +93,9 @@ class Spriteset_Map @tilemap.dispose # Dispose of panorama plane @panorama.dispose + if @panorama2 != nil + @panorama2.dispose + end # Dispose of fog plane @fog.dispose # Dispose of character sprites @@ -147,8 +158,23 @@ class Spriteset_Map @panorama.bitmap.dispose @panorama.bitmap = nil end + if @panorama2 != nil && @panorama2.bitmap != nil + @panorama2.bitmap.dispose + @panorama2.bitmap = nil + end if @panorama_name != "" - @panorama.bitmap = RPG::Cache.panorama(@panorama_name, @panorama_hue) + if $game_map.pan_fade_animate + if @panorama2 == nil + @panorama2 = Plane.new(@viewport_bg) + @panorama2.z = -999 + @panorama2.opacity = 0 + @pan_frame_index = 0 + end + @panorama.bitmap = RPG::Cache.panorama(@panorama_name + (1 + @pan_frame_index).to_s, @panorama_hue) + @panorama2.bitmap = RPG::Cache.panorama(@panorama_name + (1 + @pan_frame_index).to_s, @panorama_hue) + else + @panorama.bitmap = RPG::Cache.panorama(@panorama_name, @panorama_hue) + end end Graphics.frame_reset end @@ -232,6 +258,24 @@ class Spriteset_Map @panorama.src_rect.x = (@panorama.src_rect.x + @panorama.src_rect.height) % @panorama.bitmap.width end end + + if $game_map.pan_fade_animate + @panorama2.opacity += 3 + @panorama2.ox = @panorama.ox + @panorama2.oy = @panorama.oy + @panorama2.zoom_x = @panorama2.zoom_y = $game_map.pan_zoom + if @panorama2.opacity >= 255 + @panorama2.opacity = 255 + @panorama.dispose + @panorama = @panorama2 + @panorama.z = -1000 + @panorama2 = Plane.new(@viewport_bg) + @panorama2.z = -999 + @panorama2.opacity = 0 + @pan_frame_index = (@pan_frame_index + 1) % 3 + @panorama2.bitmap = RPG::Cache.panorama(@panorama_name + (1 + @pan_frame_index).to_s, @panorama_hue) + end + end # Update fog plane @fog.zoom_x = $game_map.fog_zoom / 100.0 @fog.zoom_y = $game_map.fog_zoom / 100.0