Advertisement
Gabriel_Nascimento

SS - Title Screen

Dec 12th, 2018
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 6.43 KB | None | 0 0
  1. #==============================================================================
  2. # ** SS - Title Screen
  3. #------------------------------------------------------------------------------
  4. # Coleção SS por: *Author
  5. #==============================================================================
  6. # * Esse código executa todos os processos da tela de título do jogo.
  7. #==============================================================================
  8. # * Requerimentos:   SS - Core              (SS_TitleScreen)
  9. #                    SS - Cache Modifiers   (SS_TitleScreen)
  10. #==============================================================================
  11.  
  12. #==============================================================================
  13. # ** SS_TitleScreen Modifiers
  14. #------------------------------------------------------------------------------
  15. # * Essa classe executa a tela de título do jogo.
  16. #==============================================================================
  17. class SS_TitleScreen < Scene_Base
  18.   include Seven_Souls::Basic_Module
  19.  
  20.   #--------------------------------------------------------------------------
  21.   # * Inicialização do processo
  22.   #--------------------------------------------------------------------------
  23.   def start
  24.     super
  25.     @current_cmd = 0
  26.     create_background
  27.     create_pics
  28.     create_commands
  29.     play_music
  30.     @show_first_effect = true
  31.   end
  32.  
  33.   #--------------------------------------------------------------------------
  34.   # * Criação do plano de fundo
  35.   #--------------------------------------------------------------------------
  36.   def create_background
  37.     @spriteset = Spriteset_Map.new
  38.   end
  39.  
  40.   #--------------------------------------------------------------------------
  41.   # * Criação dos sprites das imagens de fundo (background e logo)
  42.   #--------------------------------------------------------------------------
  43.   def create_pics
  44.     @back = Sprite.new
  45.     @back.bitmap = Cache.title("BG")
  46.    
  47.     @logo = Sprite.new
  48.     @logo.bitmap = Cache.title("LOGO")
  49.    
  50.     @back.opacity = 0 ; @logo.opacity = 0
  51.     @back.z = 200 ; @logo.z = 201
  52.     @back.x = (Graphics.width - @back.width) - 34
  53.     @logo.x = @back.x - 2 ; @logo.y = 5
  54.   end
  55.  
  56.   #--------------------------------------------------------------------------
  57.   # * Criação dos sprites dos comandos
  58.   #--------------------------------------------------------------------------
  59.   def create_commands
  60.     @commands = []
  61.     Title_Commands.each do |cmd|
  62.       sprite = Sprite.new
  63.       sprite.bitmap = Bitmap.new(@back.width, Title_FSize)
  64.       sprite.bitmap.font.name = Title_FName
  65.       sprite.bitmap.font.size = Title_FSize
  66.       sprite.bitmap.font.shadow = false
  67.       sprite.bitmap.font.outline = false
  68.       rect = Rect.new(0, 0, sprite.width, sprite.height)
  69.       sprite.bitmap.draw_text(rect, cmd, 1)
  70.       sprite.x = @back.x
  71.       y_base = @logo.y + @logo.height + 10
  72.       sprite_spacing = 15
  73.       sprite.y = y_base + ((sprite.height + sprite_spacing) * Title_Commands.index(cmd))
  74.       sprite.z = 201
  75.       sprite.opacity = 0
  76.       @commands.push(sprite)
  77.     end
  78.   end
  79.  
  80.   #--------------------------------------------------------------------------
  81.   # * Execução da música de fundo
  82.   #--------------------------------------------------------------------------
  83.   def play_music
  84.     Seven_Souls::Audio.play_Title
  85.   end
  86.  
  87.   #--------------------------------------------------------------------------
  88.   # * Atualização da tela
  89.   #--------------------------------------------------------------------------
  90.   def update
  91.     super
  92.     update_map
  93.     first_effect if @show_first_effect
  94.     if @all_done
  95.       update_cmd
  96.       update_act
  97.     end
  98.   end
  99.  
  100.   #--------------------------------------------------------------------------
  101.   # * Atualização do plano de fundo (mapa)
  102.   #--------------------------------------------------------------------------
  103.   def update_map
  104.     $game_map.update(true)
  105.     @spriteset.update
  106.   end
  107.  
  108.   #--------------------------------------------------------------------------
  109.   # * Efeito de fade-in dos sprites
  110.   #--------------------------------------------------------------------------
  111.   def first_effect
  112.     loop do
  113.       Graphics.update
  114.       update_map
  115.       @back.opacity += 5 if @back.opacity < 255
  116.       next unless @back.opacity == 255
  117.       @logo.opacity += 5 if @logo.opacity < 255
  118.       next unless @logo.opacity == 255
  119.       @commands.each do |cmd|
  120.         if @commands.index(cmd) == @current_cmd
  121.           cmd.opacity += 3
  122.         else
  123.           cmd.opacity += 6 if cmd.opacity < 102
  124.         end
  125.       end
  126.       break if @commands[@current_cmd].opacity == 255
  127.     end
  128.     @show_first_effect = false
  129.     @all_done = true
  130.   end
  131.  
  132.   #--------------------------------------------------------------------------
  133.   # * Atualização de movimento dos comandos
  134.   #--------------------------------------------------------------------------
  135.   def update_cmd
  136.     if Input.trigger?(:DOWN) && @current_cmd < 5
  137.       @current_cmd += 1
  138.       change_command(-1)
  139.     elsif Input.trigger?(:UP) && @current_cmd > 0
  140.       @current_cmd -= 1
  141.       change_command(1)
  142.     end
  143.   end
  144.  
  145.   #--------------------------------------------------------------------------
  146.   # * Atualização de confirmação dos comandos
  147.   #--------------------------------------------------------------------------
  148.   def update_act
  149.     if Input.trigger?(:C)
  150.       Seven_Souls::Audio.play_ok
  151.       $game_variables[Title_CVariable] = @current_cmd + 1
  152.       SceneManager.return
  153.     end
  154.   end
  155.  
  156.   #--------------------------------------------------------------------------
  157.   # * Execução da troca de comandos
  158.   #--------------------------------------------------------------------------
  159.   def change_command(val)
  160.     Seven_Souls::Audio.play_cursor
  161.     current = @commands[@current_cmd]
  162.     old = @commands[@current_cmd + val]
  163.     loop do
  164.       Graphics.update
  165.       update_map
  166.       current.opacity += 17
  167.       old.opacity -= 17 if old.opacity > 102
  168.       break if current.opacity == 255
  169.     end
  170.   end
  171.  
  172.   #--------------------------------------------------------------------------
  173.   # * Finalização do processo
  174.   #--------------------------------------------------------------------------
  175.   def terminate
  176.     super
  177.     instance_variables.each do |varname|
  178.       ivar = instance_variable_get(varname)
  179.       ivar.dispose if ivar.is_a?(Sprite)
  180.     end
  181.   end
  182.  
  183. end # SS_TitleScreen
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement