mirror of
https://forgejo.xatacraft.ru/Sunshine/mkxp-sunshine.git
synced 2026-08-19 13:29:54 +00:00
Added fading water animation for blue and green areas.
This cycles the panorama through 3 different images, fading them in as they show up.
This commit is contained in:
parent
4ebcd19352
commit
0b3fc4527b
2 changed files with 53 additions and 1 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in a new issue