Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $imported = {} if $imported == nil
- $imported["H87A_Infos"] = true
- #===============================================================================
- # Info Gioco di Holy87 - Ace
- # Versione 1.1
- # 11/02/2014 -> Aggiornamento v. 1.1
- # 24/08/2012 -> Script convertito per VX Ace
- #===============================================================================
- # Questo script permette di visualizzare informazioni e crediti nella schermata
- # del titolo del tuo gioco. Comprende lo scroll cinetico, visualizza il numero
- # di versione (nel caso tu abbia lo script Game Updater) e il titolo del gioco.
- #===============================================================================
- # Istruzioni: Piazzare lo script sotto Materials, prima del Main.
- # Crea un file di testo all'interno della cartella del progetto, ad esempio
- # Info.ini, e scrivi tutte le informazioni che vuoi metterci.
- # Puoi inserire nel testo dei tag speciali che facciano apparire dei simboli:
- # [S] → ★
- # [B] → ●
- # [R] → ®
- # [C] → ©
- # [L] → ♥
- #===============================================================================
- # CONFIGURAZIONE
- #===============================================================================
- module H87_Infos
- #Vuoi mostrare la versione del gioco? (funziona solo se hai Game Updater)
- Mostra_Versione = true
- #Vuoi mostrare il titolo del gioco?
- Mostra_Titolo = true
- #Inserisci il nome del file che conterrà le informazioni
- Nome_File = "Info.ini"
- #Inserisci la larghezza della pagina del testo
- Larghezza = 500
- #Opzioni barra di scorrimento
- #Vuoi mostrare la barra di scorrimento?
- Attiva_Barra = true
- #Imposta la larghezza della barra di scorrimento
- Lar_Barra = 10
- #Imposta la distanza della barra dal margine destro dello schermo
- X = 10
- #imposta la distanza della barra dal margine superiore e inferiore dello schermo
- Y = 10
- #vuoi che la barra si nasconda automaticamente se non si scorre il testo?
- Nascondi_Barra = true
- #Nel caso non sia installato lo script Menu Titolo Animato:
- IconaInfo = "T_Info" #icona del comando del menu titolo
- TestoInfo = "B_Info" #fumetto del comando del menu titolo
- end
- #===============================================================================
- # FINE CONFIGURAZIONE
- # Non modificare oltre lo script, se non sai cosa stai facendo!
- #===============================================================================
- #===============================================================================
- # Classe Scene_GameInfo
- #===============================================================================
- class Scene_GameInfo < Scene_Base
- include H87_Infos #include il modulo
- #-----------------------------------------------------------------------------
- # * Start
- #-----------------------------------------------------------------------------
- def start
- super
- create_background
- @speed = 0 #La velocità di scorrimento del testo
- @pressione = 0 #Indica se e quale tasto è premuto
- carica_testo
- crea_finestra
- crea_barra if barra_visibile?
- end
- #-----------------------------------------------------------------------------
- # * Carica il testo dal file
- #-----------------------------------------------------------------------------
- def carica_testo
- if File.exist? (Nome_File) #apre il file in sola lett.
- array = []
- File.open(Nome_File,"r") do |f|
- f.each_line {|riga| array.push(riga.to_s)}
- @testo = array
- end
- else
- msgbox("File non trovato")
- @testo = "Vuoto"
- end
- end
- #-----------------------------------------------------------------------------
- # * Crea la finestra del testo
- #-----------------------------------------------------------------------------
- def crea_finestra
- @quadrato = Viewport.new(0,0,Graphics.width,Graphics.height)
- @finestra = Window_Infos.new(@testo)
- @finestra.viewport = @quadrato
- @finestra.x = (Graphics.width-@finestra.width)/2 #finestra centrata
- @finestra.opacity = 0
- #calcolo del margine di scorrimento ai bordi
- if @finestra.height <= Graphics.height+32
- @calc = -32
- else
- @calc = Graphics.height-@finestra.height-32
- end
- end
- #-----------------------------------------------------------------------------
- # * Aggiornamento
- #-----------------------------------------------------------------------------
- def update
- super
- muovi_giu if Input.press?(:DOWN)
- muovi_su if Input.press?(:UP)
- esci if Input.trigger?(:B)
- muovi_testo
- muovi_barra if barra_visibile?
- end
- #-----------------------------------------------------------------------------
- # * Muovi giù
- #-----------------------------------------------------------------------------
- def muovi_giu
- return if @finestra.y < @calc
- @pressione=1
- @speed = 0 if @speed < 0
- @speed += 0.5
- @speed = 50 if @speed > 50
- if barra_visibile?
- @barra.opacity += 50
- @rettangolo.opacity += 50
- end
- end
- #-----------------------------------------------------------------------------
- # * Muovi su
- #-----------------------------------------------------------------------------
- def muovi_su
- return if @finestra.y > 32
- @pressione=2
- @speed = 0 if @speed > 0
- @speed -= 0.5
- @speed = -50 if @speed < -50
- if barra_visibile?
- @barra.opacity += 50
- @rettangolo.opacity += 50
- end
- end
- #-----------------------------------------------------------------------------
- # * Esci
- #-----------------------------------------------------------------------------
- def esci
- Sound.play_cancel
- SceneManager.return
- end
- #-----------------------------------------------------------------------------
- # * Muovi il testo
- #-----------------------------------------------------------------------------
- def muovi_testo
- if @pressione == 0 #se non viene premuto su o giù, la velocità diminuisce
- @finestra.y += 2 if @finestra.y < 0 #torna se è sul bordo
- @finestra.y -= 2 if @finestra.y > @calc+32
- if @speed > 0
- @speed -= 0.5
- elsif @speed < 0
- @speed += 0.5
- end
- end
- @finestra.y -= @speed/4
- if @finestra.y < @calc-32;@finestra.y = @calc-32;@speed=0;end
- if @finestra.y > 32*2;@finestra.y = 32*2;@speed=0;end
- @pressione = 0
- end
- #-----------------------------------------------------------------------------
- # * Crea la barra
- #-----------------------------------------------------------------------------
- def crea_barra
- larghezza = Lar_Barra
- x = Graphics.width-larghezza-X
- y = Y
- altezza = Graphics.height-y-10
- colore_retro = Color.new(0,0,0,100)
- immagine = Bitmap.new(larghezza,altezza)
- immagine.fill_rect(0,0,larghezza,altezza,colore_retro)
- @rettangolo = Sprite.new
- @rettangolo.bitmap = immagine
- @rettangolo.x = x
- @rettangolo.y = y
- bianco = Color.new(255,255,255,200)
- grigio = Color.new(200,200,200,200)
- calcola_alt = altezza*(Graphics.height.to_f/@finestra.height.to_f)
- immaginebarra = Bitmap.new(larghezza,calcola_alt)
- immaginebarra.gradient_fill_rect(0,0,larghezza,calcola_alt,bianco,grigio)
- immaginebarra.blur
- @barra = Sprite.new
- @barra.bitmap = immaginebarra
- @barra.x = x
- @barra.y = y
- end
- #-----------------------------------------------------------------------------
- # * Calcola la prossima coordinata della barra di scorrimento
- #-----------------------------------------------------------------------------
- def calcola_destinazione
- minimo = Y
- massimo = minimo + @rettangolo.height - @barra.height
- lunghezza = massimo-minimo
- lung_finestra = @finestra.height
- proporzione = lunghezza.to_f/(lung_finestra-Graphics.height).to_f
- destinazione = @finestra.y.to_f*(-1.0)*proporzione
- destinazione = minimo if destinazione < minimo
- destinazione = massimo if destinazione > massimo
- return destinazione.to_i
- end
- #-----------------------------------------------------------------------------
- # * Aggiorna la grafica della barra
- #-----------------------------------------------------------------------------
- def muovi_barra
- @barra.y = calcola_destinazione
- if Nascondi_Barra
- @barra.opacity -= 2
- @rettangolo.opacity -= 2
- end
- end
- #-----------------------------------------------------------------------------
- # * Elimina le barre una volta che si torna indietro
- #-----------------------------------------------------------------------------
- def elimina_barre
- @rettangolo.dispose
- @rettangolo.bitmap.dispose
- @barra.dispose
- @barra.bitmap.dispose
- end
- #-----------------------------------------------------------------------------
- # * Restituisce true se la barra è attiva
- #-----------------------------------------------------------------------------
- def barra_visibile?
- return false if Attiva_Barra == false or @barra == nil
- #return false if Graphics.height+32 >= @finestra.height
- return true
- end
- #-----------------------------------------------------------------------------
- # * Termina
- #-----------------------------------------------------------------------------
- def terminate
- super
- elimina_barre if barra_visibile?
- @finestra.dispose
- @quadrato.dispose
- dispose_background
- end
- #-----------------------------------------------------------------------------
- # * Crea Sfondo
- #-----------------------------------------------------------------------------
- def create_background
- @background_sprite = Sprite.new
- @background_sprite.bitmap = SceneManager.background_bitmap
- @background_sprite.color.set(16, 16, 16, 128)
- end
- #--------------------------------------------------------------------------
- # * Elimina lo sfondo
- #--------------------------------------------------------------------------
- def dispose_background
- @background_sprite.dispose
- end
- end
- #===============================================================================
- # Classe Window_Infos
- #===============================================================================
- class Window_Infos < Window_Base
- def initialize(testo)
- alt = (line_height*(testo.size+1))+32
- super((Graphics.width-H87_Infos::Larghezza)/2,0,H87_Infos::Larghezza,alt)
- @testo = testo
- @righe = @testo.size+1
- refresh
- end
- #-----------------------------------------------------------------------------
- # Refresh
- #-----------------------------------------------------------------------------
- def refresh
- self.contents.clear
- colore = Color.new(255,255,255,100) #colore bianco
- self.contents.fill_rect(4, 0, self.width-32, 1,colore) #linea superiore
- if H87_Infos::Mostra_Titolo
- self.contents.draw_text(4,0,self.width-32,line_height,$data_system.game_title)
- end
- if H87_Infos::Mostra_Versione and $imported["H87A_Updater"]#Updater
- vers = "Versione: "+Updater.current_version.to_s
- self.contents.draw_text(4,0,self.width-40,line_height,vers,2)
- end
- for i in 1..@righe-1
- @testo[i-1].gsub!("\n","") if @testo[i-1].gsub("\n","") != nil
- @testo[i-1].gsub!("[R]","®")
- @testo[i-1].gsub!("[C]","©")
- @testo[i-1].gsub!("[L]","♥")
- @testo[i-1].gsub!("[S]","★")
- @testo[i-1].gsub!("[B]","●")
- self.contents.draw_text(4,line_height*i,self.width-32,line_height,@testo[i-1],1)
- end
- self.contents.fill_rect(4,(line_height*@righe)-1, self.width-32, 1,colore) #linea inf
- end
- end
- #===============================================================================
- # Classe Scene_Title
- #===============================================================================
- class Scene_Title < Scene_Base
- #-----------------------------------------------------------------------------
- # * Comando per accedere alle info
- #-----------------------------------------------------------------------------
- def command_infos
- Sound.play_ok
- SceneManager.call(Scene_GameInfo)
- end
- if $imported["H87_TitleMenu"]
- alias metodo_aliasato crea_contenuti_personalizzati
- def crea_contenuti_personalizzati
- metodo_aliasato
- add_cursor(:info, "command_infos",H87_Infos::IconaInfo,H87_Infos::TestoInfo)
- end;end
- unless $imported["H87_TitleMenu"]
- alias nuovo_command_window create_command_window unless $@
- def create_command_window
- nuovo_command_window
- @command_window.set_handler(:info, method(:command_infos))
- end
- end
- end
- class Window_TitleCommand < Window_Command
- alias nuovo_command_list make_command_list unless $@
- def make_command_list
- nuovo_command_list
- add_command(H87_Infos::TestoInfo, :info)
- end
- end #scene_title
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement