Advertisement
Holy87

Logo VX

Jul 12th, 2013
211
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 10.66 KB | None | 0 0
  1. $imported = {} if $imported == nil
  2. $imported["H87_Logoshower"] = true
  3. #===============================================================================
  4. # SCHERMATA DEL LOGO
  5. #===============================================================================
  6. # Autore: Holy87
  7. # Versione: 1.0
  8. # Difficoltà utente: ★★
  9. #-------------------------------------------------------------------------------
  10. # Questo script serve per mostrare una serie di immagini all'apertura del gioco,
  11. # come il nome-firma-logo dell'autore/team, messaggi ecc...
  12. # Lo script consente di:
  13. # ● Mostrare quante successioni di immagini si voglia
  14. # ● Saltare in qualsiasi momento al titolo premendo Invio
  15. # ● Regolare per ogni immagine il tempo di comparsa e l'effetto zoom
  16. # ● Eseguire la musica della schermata del titolo dall'inizio
  17. # ● Saltare automaticamente la presentazione se si esegue da Test di gioco.
  18. #-------------------------------------------------------------------------------
  19. # Istruzioni:
  20. # Copiare lo script sotto Materials, prima del Main e SOTTO tutti gli script.
  21. # Le immagini da mostrare vanno messe nella cartella Graphics\Pictures. Le
  22. # immagini verranno automaticamente centrate sullo schermo quando mostrate.
  23. #
  24. #-------------------------------------------------------------------------------
  25. # Compatibilità:
  26. # Compatibile con tutti gli script.
  27. #-------------------------------------------------------------------------------
  28. module H87_logo_shower
  29. #===============================================================================
  30. # ** CONFIGURAZIONE **
  31. #===============================================================================
  32.   Logos = {
  33.   # Inserisci qui in ordine le immagini da mostrare, quanto tempo deve durare
  34.   # (in frame) e se attivare o no l'effetto zoom.
  35.   #Tipo:  0-> Fade normale
  36.   #       1-> Zoom normale
  37.   #       2-> Zoom orizzontale
  38.   #       3-> Zoom verticale
  39.   #       4-> Increspatura
  40.  
  41.   #ID   Nome         Tempo      Tipo
  42.   1 => ["Logo",       130,      1],
  43.   2 => ["Logo2",      130,      1],
  44.   3 => ["Logo3",      200,      0],
  45.   } # non rimuovere!
  46.   # N.B. Il conteggio del tempo comincia dopo il termine del fade del logo.
  47.  
  48.   #Vuoi eseguire la musica del titolo anche nel logo?
  49.   Play_music = true
  50.  
  51.   #Tempo di dissolvenza delle immagini
  52.   Fade_time = 50
  53.  
  54.   #Tempo di dissolvenza dell'immagine finale
  55.   Final_fade = 80
  56.  
  57.   #Saltare i logo se si avvia il gioco in modalità test?
  58.   Jump_test = true
  59.  
  60.  
  61.   #============================================================================
  62.   # ** FINE CONFIGURAZIONE **
  63.   # Modificare da questo punto in poi è rischioso.
  64.   #============================================================================
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78.   #--------------------------------------------------------------------------
  79.   # * restituisce la velocità di dissolvenza
  80.   #--------------------------------------------------------------------------
  81.   def fade_speed
  82.     return 255.0 / Fade_time
  83.   end
  84.  
  85.   #--------------------------------------------------------------------------
  86.   # * restituisce la velocità di dissolvenza dopo l'ultima immagine
  87.   #--------------------------------------------------------------------------
  88.   def final_fade_speed
  89.     return 255.0 / Final_fade
  90.   end
  91.  
  92. end # modulo
  93.  
  94. #===============================================================================
  95. # ** Classe Scene_Title
  96. #===============================================================================
  97. class Scene_Title < Scene_Base
  98.  
  99.   alias h87lg_start start unless $@
  100.   #--------------------------------------------------------------------------
  101.   # * redefining metodo start
  102.   #--------------------------------------------------------------------------
  103.   def start
  104.     unless jump_logo? # se si deve saltare al logo
  105.       go_logo         # vai al logo
  106.     else              # altrimenti
  107.       @jump_logo = false
  108.       h87lg_start     # normale esecuzione del titolo
  109.     end
  110.   end
  111.  
  112.   #--------------------------------------------------------------------------
  113.   # * restituisce true se NON si deve andare al logo
  114.   #--------------------------------------------------------------------------
  115.   def jump_logo?
  116.     return true if $TEST and H87_logo_shower::Jump_test
  117.     return true if $BTEST
  118.     return true if $logo_done # se già è stato eseguito una volta
  119.     return false
  120.   end
  121.  
  122.   alias h87lg_update update unless $@
  123.   #--------------------------------------------------------------------------
  124.   # * redefining del metodo update
  125.   #--------------------------------------------------------------------------
  126.   def update
  127.     h87lg_update unless @jump_logo # aggiorna solo se non si salta al logo
  128.   end
  129.  
  130.   alias h87lg_terminate terminate unless $@
  131.   #--------------------------------------------------------------------------
  132.   # * redefining del metodo terminate
  133.   #--------------------------------------------------------------------------
  134.   def terminate
  135.     h87lg_terminate unless @jump_logo # dispone solo se...
  136.   end
  137.  
  138.   #--------------------------------------------------------------------------
  139.   # * vai al logo
  140.   #--------------------------------------------------------------------------
  141.   def go_logo
  142.     @jump_logo = true
  143.     $scene = Scene_Logo.new
  144.   end
  145.  
  146. end # scene_title
  147.  
  148.  
  149. #===============================================================================
  150. # ** Classe Scene_Logo
  151. #===============================================================================
  152. class Scene_Logo < Scene_Base
  153.   include H87_logo_shower # <- il modulo di prima
  154.  
  155.   #--------------------------------------------------------------------------
  156.   # * inizio
  157.   #--------------------------------------------------------------------------
  158.   def start
  159.     super
  160.     $logo_done = true               # flag che indica che il logo è stato visto
  161.     create_logo_graphic             # crea lo sprite del logo
  162.     play_title_music if Play_music  # esegui la musica del titolo
  163.   end
  164.  
  165.   #--------------------------------------------------------------------------
  166.   # * creazione dello sprite
  167.   #--------------------------------------------------------------------------
  168.   def create_logo_graphic
  169.     @logo_counter = 1               # contatore
  170.     @time_counter = 0               # tempo che resta
  171.     @logo = Sprite.new              # creazione
  172.     change_logo                     # aggiorna la bitmap
  173.   end
  174.  
  175.   #--------------------------------------------------------------------------
  176.   # * cambia logo e aggiorna la bitmap
  177.   #--------------------------------------------------------------------------
  178.   def change_logo
  179.     @logo.bitmap = Cache.picture(Logos[@logo_counter][0])
  180.     @logo.opacity = 0
  181.     @logo.ox = @logo.width/2      # l'origine è al centro
  182.     @logo.oy = @logo.height/2     # idem
  183.     @logo.x = Graphics.width / 2  # centra l'immagine
  184.     @logo.y = Graphics.height / 2 # idem
  185.     @speed = 0
  186.     @logo.zoom_x = 1
  187.     @logo.zoom_y = 1
  188.     @logo.wave_speed = 0
  189.     @logo.wave_length = 0
  190.     case Logos[@logo_counter][2]    # caso
  191.     when 1
  192.       @speed = 0.002              # velocità zoom
  193.       @logo.zoom_x = 0.9          # proporzioni (solo del 10% più piccolo
  194.       @logo.zoom_y = 0.9          # idem
  195.     when 2
  196.       @speed = 0.01
  197.       @logo.zoom_x = 0
  198.     when 3
  199.       @speed = 0.01
  200.       @logo.zoom_y = 0
  201.     when 4
  202.       @speed = 1
  203.       @logo.wave_amp = 80
  204.       @logo.wave_length = 50
  205.       @logo.wave_speed = 400
  206.     end
  207.   end
  208.  
  209.   #--------------------------------------------------------------------------
  210.   # * sostituisce l'immagine con la prossima
  211.   #--------------------------------------------------------------------------
  212.   def next_logo
  213.     return if Logos[@logo_counter + 1] == nil
  214.     @logo_counter += 1
  215.     @time_counter = 0
  216.     change_logo
  217.   end
  218.  
  219.   #--------------------------------------------------------------------------
  220.   # * restituisce true se c'è un'altra immagine da mostrare
  221.   #--------------------------------------------------------------------------
  222.   def there_next?
  223.     return true if Logos[@logo_counter + 1] != nil
  224.     return false
  225.   end
  226.  
  227.   #--------------------------------------------------------------------------
  228.   # * aggiornamento
  229.   #--------------------------------------------------------------------------
  230.   def update
  231.     super
  232.     jump_logo if Input.trigger?(Input::C) # aggiorna l'input
  233.     update_fade_logo                      # aggiorna l'animazione
  234.   end
  235.  
  236.   #--------------------------------------------------------------------------
  237.   # * aggiorna l'animazione dell'immagine
  238.   #--------------------------------------------------------------------------
  239.   def update_fade_logo
  240.     # gestione della comparsa
  241.     case Logos[@logo_counter][2]
  242.     when 1
  243.       if @logo.zoom_x < 1
  244.         @logo.zoom_x += @speed
  245.         @logo.zoom_y += @speed
  246.       end
  247.     when 2
  248.       @logo.zoom_x += @speed if @logo.zoom_x < 1
  249.     when 3
  250.       @logo.zoom_y += @speed if @logo.zoom_y < 1
  251.     when 4
  252.       if @logo.wave_amp > 0
  253.         @logo.wave_amp -= @speed
  254.       end
  255.     end
  256.     @logo.update
  257.     # fade
  258.     if @time_counter < Logos[@logo_counter][1] # attesa frame
  259.       @logo.opacity += fade_speed
  260.       if @logo.opacity >= 255
  261.         @time_counter += 1
  262.       end
  263.     else
  264.       if there_next?
  265.         @logo.opacity -= fade_speed
  266.       else
  267.         @logo.opacity -= final_fade_speed
  268.       end
  269.       if @logo.opacity == 0
  270.         if there_next?
  271.           next_logo
  272.         else
  273.           go_title
  274.         end
  275.       end
  276.     end
  277.   end
  278.  
  279.   #--------------------------------------------------------------------------
  280.   # * finalmente, vai alla schermata del titolo
  281.   #--------------------------------------------------------------------------
  282.   def go_title
  283.     $scene = Scene_Title.new
  284.   end
  285.  
  286.   #--------------------------------------------------------------------------
  287.   # * fine
  288.   #--------------------------------------------------------------------------
  289.   def terminate
  290.     @logo.opacity = 0
  291.     super
  292.     @logo.bitmap.dispose
  293.     @logo.dispose
  294.   end
  295.  
  296.   #--------------------------------------------------------------------------
  297.   # * forza il title
  298.   #--------------------------------------------------------------------------
  299.   def jump_logo
  300.     go_title
  301.   end
  302.  
  303.   #--------------------------------------------------------------------------
  304.   # * esegue la musica del titolo
  305.   #--------------------------------------------------------------------------
  306.   def play_title_music
  307.     $data_system = load_data("Data/System.rvdata") # carica il sistema
  308.     $data_system.title_bgm.play
  309.     RPG::BGS.stop
  310.     RPG::ME.stop
  311.   end
  312.  
  313. end # scene_logo
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement