Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $imported = {} if $imported == nil
- $imported["H87_Logoshower"] = true
- #===============================================================================
- # SCHERMATA DEL LOGO
- #===============================================================================
- # Autore: Holy87
- # Versione: 1.0
- # Difficoltà utente: ★★
- #-------------------------------------------------------------------------------
- # Questo script serve per mostrare una serie di immagini all'apertura del gioco,
- # come il nome-firma-logo dell'autore/team, messaggi ecc...
- # Lo script consente di:
- # ● Mostrare quante successioni di immagini si voglia
- # ● Saltare in qualsiasi momento al titolo premendo Invio
- # ● Regolare per ogni immagine il tempo di comparsa e l'effetto zoom
- # ● Eseguire la musica della schermata del titolo dall'inizio
- # ● Saltare automaticamente la presentazione se si esegue da Test di gioco.
- #-------------------------------------------------------------------------------
- # Istruzioni:
- # Copiare lo script sotto Materials, prima del Main e SOTTO tutti gli script.
- # Le immagini da mostrare vanno messe nella cartella Graphics\Pictures. Le
- # immagini verranno automaticamente centrate sullo schermo quando mostrate.
- #
- #-------------------------------------------------------------------------------
- # Compatibilità:
- # Compatibile con tutti gli script.
- #-------------------------------------------------------------------------------
- module H87_logo_shower
- #===============================================================================
- # ** CONFIGURAZIONE **
- #===============================================================================
- Logos = {
- # Inserisci qui in ordine le immagini da mostrare, quanto tempo deve durare
- # (in frame) e se attivare o no l'effetto zoom.
- #Tipo: 0-> Fade normale
- # 1-> Zoom normale
- # 2-> Zoom orizzontale
- # 3-> Zoom verticale
- # 4-> Increspatura
- #ID Nome Tempo Tipo
- 1 => ["Logo", 130, 1],
- 2 => ["Logo2", 130, 1],
- 3 => ["Logo3", 200, 0],
- } # non rimuovere!
- # N.B. Il conteggio del tempo comincia dopo il termine del fade del logo.
- #Vuoi eseguire la musica del titolo anche nel logo?
- Play_music = true
- #Tempo di dissolvenza delle immagini
- Fade_time = 50
- #Tempo di dissolvenza dell'immagine finale
- Final_fade = 80
- #Saltare i logo se si avvia il gioco in modalità test?
- Jump_test = true
- #============================================================================
- # ** FINE CONFIGURAZIONE **
- # Modificare da questo punto in poi è rischioso.
- #============================================================================
- #--------------------------------------------------------------------------
- # * restituisce la velocità di dissolvenza
- #--------------------------------------------------------------------------
- def fade_speed
- return 255.0 / Fade_time
- end
- #--------------------------------------------------------------------------
- # * restituisce la velocità di dissolvenza dopo l'ultima immagine
- #--------------------------------------------------------------------------
- def final_fade_speed
- return 255.0 / Final_fade
- end
- end # modulo
- #===============================================================================
- # ** Classe Scene_Title
- #===============================================================================
- class Scene_Title < Scene_Base
- alias h87lg_start start unless $@
- #--------------------------------------------------------------------------
- # * redefining metodo start
- #--------------------------------------------------------------------------
- def start
- unless jump_logo? # se si deve saltare al logo
- go_logo # vai al logo
- else # altrimenti
- @jump_logo = false
- h87lg_start # normale esecuzione del titolo
- end
- end
- #--------------------------------------------------------------------------
- # * restituisce true se NON si deve andare al logo
- #--------------------------------------------------------------------------
- def jump_logo?
- return true if $TEST and H87_logo_shower::Jump_test
- return true if $BTEST
- return true if $logo_done # se già è stato eseguito una volta
- return false
- end
- alias h87lg_update update unless $@
- #--------------------------------------------------------------------------
- # * redefining del metodo update
- #--------------------------------------------------------------------------
- def update
- h87lg_update unless @jump_logo # aggiorna solo se non si salta al logo
- end
- alias h87lg_terminate terminate unless $@
- #--------------------------------------------------------------------------
- # * redefining del metodo terminate
- #--------------------------------------------------------------------------
- def terminate
- h87lg_terminate unless @jump_logo # dispone solo se...
- end
- #--------------------------------------------------------------------------
- # * vai al logo
- #--------------------------------------------------------------------------
- def go_logo
- @jump_logo = true
- $scene = Scene_Logo.new
- end
- end # scene_title
- #===============================================================================
- # ** Classe Scene_Logo
- #===============================================================================
- class Scene_Logo < Scene_Base
- include H87_logo_shower # <- il modulo di prima
- #--------------------------------------------------------------------------
- # * inizio
- #--------------------------------------------------------------------------
- def start
- super
- $logo_done = true # flag che indica che il logo è stato visto
- create_logo_graphic # crea lo sprite del logo
- play_title_music if Play_music # esegui la musica del titolo
- end
- #--------------------------------------------------------------------------
- # * creazione dello sprite
- #--------------------------------------------------------------------------
- def create_logo_graphic
- @logo_counter = 1 # contatore
- @time_counter = 0 # tempo che resta
- @logo = Sprite.new # creazione
- change_logo # aggiorna la bitmap
- end
- #--------------------------------------------------------------------------
- # * cambia logo e aggiorna la bitmap
- #--------------------------------------------------------------------------
- def change_logo
- @logo.bitmap = Cache.picture(Logos[@logo_counter][0])
- @logo.opacity = 0
- @logo.ox = @logo.width/2 # l'origine è al centro
- @logo.oy = @logo.height/2 # idem
- @logo.x = Graphics.width / 2 # centra l'immagine
- @logo.y = Graphics.height / 2 # idem
- @speed = 0
- @logo.zoom_x = 1
- @logo.zoom_y = 1
- @logo.wave_speed = 0
- @logo.wave_length = 0
- case Logos[@logo_counter][2] # caso
- when 1
- @speed = 0.002 # velocità zoom
- @logo.zoom_x = 0.9 # proporzioni (solo del 10% più piccolo
- @logo.zoom_y = 0.9 # idem
- when 2
- @speed = 0.01
- @logo.zoom_x = 0
- when 3
- @speed = 0.01
- @logo.zoom_y = 0
- when 4
- @speed = 1
- @logo.wave_amp = 80
- @logo.wave_length = 50
- @logo.wave_speed = 400
- end
- end
- #--------------------------------------------------------------------------
- # * sostituisce l'immagine con la prossima
- #--------------------------------------------------------------------------
- def next_logo
- return if Logos[@logo_counter + 1] == nil
- @logo_counter += 1
- @time_counter = 0
- change_logo
- end
- #--------------------------------------------------------------------------
- # * restituisce true se c'è un'altra immagine da mostrare
- #--------------------------------------------------------------------------
- def there_next?
- return true if Logos[@logo_counter + 1] != nil
- return false
- end
- #--------------------------------------------------------------------------
- # * aggiornamento
- #--------------------------------------------------------------------------
- def update
- super
- jump_logo if Input.trigger?(Input::C) # aggiorna l'input
- update_fade_logo # aggiorna l'animazione
- end
- #--------------------------------------------------------------------------
- # * aggiorna l'animazione dell'immagine
- #--------------------------------------------------------------------------
- def update_fade_logo
- # gestione della comparsa
- case Logos[@logo_counter][2]
- when 1
- if @logo.zoom_x < 1
- @logo.zoom_x += @speed
- @logo.zoom_y += @speed
- end
- when 2
- @logo.zoom_x += @speed if @logo.zoom_x < 1
- when 3
- @logo.zoom_y += @speed if @logo.zoom_y < 1
- when 4
- if @logo.wave_amp > 0
- @logo.wave_amp -= @speed
- end
- end
- @logo.update
- # fade
- if @time_counter < Logos[@logo_counter][1] # attesa frame
- @logo.opacity += fade_speed
- if @logo.opacity >= 255
- @time_counter += 1
- end
- else
- if there_next?
- @logo.opacity -= fade_speed
- else
- @logo.opacity -= final_fade_speed
- end
- if @logo.opacity == 0
- if there_next?
- next_logo
- else
- go_title
- end
- end
- end
- end
- #--------------------------------------------------------------------------
- # * finalmente, vai alla schermata del titolo
- #--------------------------------------------------------------------------
- def go_title
- $scene = Scene_Title.new
- end
- #--------------------------------------------------------------------------
- # * fine
- #--------------------------------------------------------------------------
- def terminate
- @logo.opacity = 0
- super
- @logo.bitmap.dispose
- @logo.dispose
- end
- #--------------------------------------------------------------------------
- # * forza il title
- #--------------------------------------------------------------------------
- def jump_logo
- go_title
- end
- #--------------------------------------------------------------------------
- # * esegue la musica del titolo
- #--------------------------------------------------------------------------
- def play_title_music
- $data_system = load_data("Data/System.rvdata") # carica il sistema
- $data_system.title_bgm.play
- RPG::BGS.stop
- RPG::ME.stop
- end
- end # scene_logo
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement