Advertisement
Guest User

Untitled

a guest
Oct 13th, 2019
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 5.11 KB | None | 0 0
  1. module CSCA
  2.   module SPLASH
  3.     IMAGES = ["Graphics/System/Splash.png"]
  4.     # Images shown in splash screen.
  5.    
  6.     TRANSITION_SPEED = 10 # Speed images fade in/out if more than 1.
  7.     AUTO = true # Automatically go to next image after a certain amount of time?
  8.     TIME = 60 # Time in frames (60f = 1sec) to wait before auto continue
  9.   end
  10. end
  11. $imported = {} if $imported.nil?
  12. $imported["CSCA-SplashScreen"] = true
  13. #==============================================================================
  14. # ** CSCA_Scene_Splash
  15. #------------------------------------------------------------------------------
  16. # This class performs the splash screen processing.
  17. #==============================================================================
  18. class CSCA_Scene_Splash < Scene_Base
  19.   #--------------------------------------------------------------------------
  20.   # Start Processing
  21.   #--------------------------------------------------------------------------
  22.   def start
  23.     super
  24.     SceneManager.clear
  25.     Graphics.freeze
  26.     RPG::BGS.stop
  27.     RPG::BGM.stop
  28.     @time = 0
  29.     @order = 0
  30.     @image_need_change = false
  31.     @fade = :in
  32.     create_image(@order)
  33.   end
  34.   #--------------------------------------------------------------------------
  35.   # Get Transition Speed
  36.   #--------------------------------------------------------------------------
  37.   def transition_speed
  38.     return 20
  39.   end
  40.   #--------------------------------------------------------------------------
  41.   # Termination Processing
  42.   #--------------------------------------------------------------------------
  43.   def terminate
  44.     super
  45.     dispose_image
  46.   end
  47.   #--------------------------------------------------------------------------
  48.   # Create Sprite
  49.   #--------------------------------------------------------------------------
  50.   def create_image(image)
  51.     @sprite = Sprite.new
  52.     @sprite.opacity = 0 if @order > 0
  53.     @sprite.bitmap = Bitmap.new(CSCA::SPLASH::IMAGES[image])
  54.     center_sprite(@sprite)
  55.   end
  56.   #--------------------------------------------------------------------------
  57.   # Free Sprite
  58.   #--------------------------------------------------------------------------
  59.   def dispose_image
  60.     @sprite.bitmap.dispose
  61.     @sprite.dispose
  62.   end
  63.   #--------------------------------------------------------------------------
  64.   # Move Sprite to Screen Center
  65.   #--------------------------------------------------------------------------
  66.   def center_sprite(sprite)
  67.     sprite.ox = sprite.bitmap.width / 2
  68.     sprite.oy = sprite.bitmap.height / 2
  69.     sprite.x = Graphics.width / 2
  70.     sprite.y = Graphics.height / 2
  71.   end
  72.   #--------------------------------------------------------------------------
  73.   # Update
  74.   #--------------------------------------------------------------------------
  75.   def update
  76.     super
  77.     @time += 1 unless @image_need_change
  78.     if continue?
  79.       @order += 1 unless @image_need_change
  80.       if @order >= CSCA::SPLASH::IMAGES.length
  81.         fadeout_all
  82.         SceneManager.goto(Scene_Title)
  83.       else
  84.         unless @image_need_change
  85.           @fade = :out
  86.           @time = 0
  87.           @image_need_change = true
  88.         end
  89.       end
  90.     end
  91.     change_image if @image_need_change
  92.   end
  93.   #--------------------------------------------------------------------------
  94.   # Fade In/Out
  95.   #--------------------------------------------------------------------------
  96.   def change_image
  97.     if @sprite.opacity <= 0
  98.       change_sprite
  99.       @fade = :in
  100.     end
  101.     case @fade
  102.     when :out; @sprite.opacity -= CSCA::SPLASH::TRANSITION_SPEED
  103.     when :in; @sprite.opacity += CSCA::SPLASH::TRANSITION_SPEED
  104.     end
  105.     @image_need_change = false if @fade == :in && @sprite.opacity >= 255
  106.   end
  107.   #--------------------------------------------------------------------------
  108.   # Change Sprite
  109.   #--------------------------------------------------------------------------
  110.   def change_sprite
  111.     dispose_image
  112.     create_image(@order)
  113.   end
  114.   #--------------------------------------------------------------------------
  115.   # OK to continue to title?
  116.   #--------------------------------------------------------------------------
  117.   def continue?
  118.     Input.press?(:C) || Input.press?(:A) || Input.press?(:B) || time_up?
  119.   end
  120.   #--------------------------------------------------------------------------
  121.   # OK to continue to title?
  122.   #--------------------------------------------------------------------------
  123.   def time_up?
  124.     CSCA::SPLASH::AUTO && @time >= CSCA::SPLASH::TIME
  125.   end
  126. end
  127. #==============================================================================
  128. # ** SceneManager
  129. #------------------------------------------------------------------------------
  130. # Changed the first scene class.
  131. #Overwrites: first_scene_class
  132. #==============================================================================
  133. module SceneManager
  134.   #--------------------------------------------------------------------------
  135.   # Overwrite method; Get First Scene Class
  136.   #--------------------------------------------------------------------------
  137.   def self.first_scene_class
  138.     $BTEST ? Scene_Battle : CSCA_Scene_Splash
  139.   end
  140. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement