Advertisement
Rafael_Sol_Maker

RAFAEL_SOL_MAKER's VX SCENE INTRO (2Kx LOGO) v1.3

Nov 17th, 2011
201
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 4.74 KB | None | 0 0
  1. #===============================================================================
  2. #             RAFAEL_SOL_MAKER's VX SCENE INTRO (2Kx LOGO) v1.3
  3. #-------------------------------------------------------------------------------
  4. # Descrição:    Possibilita a adição de um "slide show" de imagens, que pode ser
  5. #               usado como um logotipo antes da tela de título, similar ao do
  6. #               RPG Maker 2000/2003. Também pode executar uma música de fundo e
  7. #               é possível também utilizar no mapa usando o comando específico.
  8. #-------------------------------------------------------------------------------
  9. # Modo de usar:
  10. #   Todas as imagens devem ir para a pasta 'Graphics/Intro/';
  11. #   Exemplo de uso in-game, colocar no comando 'Chamar Script':
  12. #
  13. #      show_intro (["Imagem1","ImagemOutra","Imagem_N"], "Música",
  14. #                   <wait_time>, <fade_in_time>,<fade_out_time>)
  15. #
  16. # OBS.: Parâmetros entre <> são dados em frames, 60 equivalem a 1 segundo;
  17. #       todos esses parâmetros são opcionais.
  18. #       Para não especificar uma música de fundo use 'nil'.
  19. #-------------------------------------------------------------------------------
  20. # Agradecimentos Especiais: PRCoders
  21. #-------------------------------------------------------------------------------
  22. #===============================================================================
  23.  
  24. #===============================================================================
  25. # UPDATES
  26. #-------------------------------------------------------------------------------
  27. # VX SCENE INTRO (2Kx LOGO) v1.2 -> v1.3
  28. # * Mudança maior na estrutura, principalmente na parte das músicas, que estão
  29. #     devidamente configuradas em conjunto com os fadeouts gráficos, sendo que  
  30. #     agora há um na mudança de uma cena para  a intro;
  31. # * Agora ele também volta corretamente para a cena anterior, não importando qual
  32. #     ela seja, ao invés de sempre voltar para o mapa. Pode ser algo útil;
  33. # * Agora, caso não seja configurada uma música, ele não irá parar e interromper
  34. #     todas as músicas e sons que já estiverem tocando;
  35. # * Outros pequenos ajustes permitem que as Músicas de Fundo e Sons de Fundo  
  36. #     (BGM & BGS) recebam fadeout e depois voltem a tocar corretamente
  37. #     logo após a Intro;
  38. # * OBS.: Os Efeitos Sonoros e Efeitos Musicais (SE & ME) são interrompidos,  
  39. #     sendo que o ME possui fadeout. Esses não voltarão a tocar novamente.
  40. #-------------------------------------------------------------------------------
  41. #===============================================================================
  42.  
  43. class Game_Interpreter  
  44.   def show_intro (pictures, intro_music, wait = 60, fade_in = 60,  fade_out = 60)
  45.     $scene = Scene_Intro.new (pictures, intro_music, wait, fade_in, fade_out)
  46.   end
  47. end
  48.  
  49. module Cache  
  50.   def self.intro(filename)
  51.     load_bitmap('Graphics/Intros/', filename)
  52.   end
  53. end
  54.  
  55. class Scene_Intro < Scene_Base
  56.   include RPG
  57.  
  58.   def initialize (pictures, intro_music, wait_time, fade_in_time, fade_out_time)  
  59.     @pictures = pictures  
  60.     @intro_music = intro_music
  61.     @wait_time = wait_time
  62.     @fade_in_time = fade_in_time  
  63.     @fade_out_time = fade_out_time
  64.    
  65.     unless $scene.nil?
  66.       fade_out_music
  67.       Graphics.fadeout (@fade_out_time)
  68.     else
  69.       update
  70.     end    
  71.   end
  72.  
  73.   def update
  74.     play_intro_music; counter = 0
  75.     @sprite = Sprite.new; @sprite.z = 9999
  76.    
  77.     for image in @pictures
  78.       counter += 1
  79.       Graphics.freeze  
  80.       @sprite.bitmap = Cache.intro(image)
  81.       Graphics.transition(@fade_in_time)
  82.      
  83.       for i in 0...@wait_time
  84.         Graphics.update
  85.         Input.update
  86.         if Input.trigger?(Input::C)          
  87.           break
  88.         elsif Input.trigger?(Input::B)
  89.           # FAZ_ALGO_AQUI...?
  90.         end        
  91.       end
  92.       #Se for a última imagem, vamos "apagar" a música;
  93.       fade_out_music if counter == @pictures.size
  94.      
  95.       Graphics.fadeout(@fade_out_time - 5)
  96.       Graphics.wait(5) #Prevenindo algum flicker...      
  97.     end
  98.    
  99.     replay_last_music
  100.     Graphics.freeze    
  101.     @sprite.dispose  unless @sprite.nil?
  102.    
  103.     unless $scene.nil?        
  104.       $scene = $previous_scene
  105.     end
  106.   end    
  107.    
  108.   def fade_out_music
  109.     unless @intro_music == nil  
  110.       time = @fade_out_time * 33.33      
  111.       ME.fade(time); SE.stop  
  112.       Audio.bgm_fade(time); Audio.bgs_fade(time)
  113.     end
  114.   end
  115.  
  116.   def play_intro_music
  117.     unless @intro_music == nil
  118.       Audio.bgm_play ('Audio/BGM/' + @intro_music)
  119.     end
  120.   end
  121.  
  122.   def replay_last_music    
  123.     unless @intro_music == nil
  124.       BGM.last.play
  125.       BGS.last.play
  126.     end
  127.   end
  128.  
  129. end
  130.  
  131. $scene = Scene_Intro.new (["Logo"], nil, 60, 30, 30)
  132.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement