SHARE
TWEET

Info gioco - ACE

Holy87 Feb 9th, 2015 (edited) 312 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. $imported = {} if $imported == nil
  2. $imported["H87A_Infos"] = true
  3. #===============================================================================
  4. # Info Gioco di Holy87 - Ace
  5. # Versione 1.1
  6. # 11/02/2014 -> Aggiornamento v. 1.1
  7. # 24/08/2012 -> Script convertito per VX Ace
  8. #===============================================================================
  9. # Questo script permette di visualizzare informazioni e crediti nella schermata
  10. # del titolo del tuo gioco. Comprende lo scroll cinetico, visualizza il numero
  11. # di versione (nel caso tu abbia lo script Game Updater) e il titolo del gioco.
  12. #===============================================================================
  13. # Istruzioni: Piazzare lo script sotto Materials, prima del Main.
  14. # Crea un file di testo all'interno della cartella del progetto, ad esempio
  15. # Info.ini, e scrivi tutte le informazioni che vuoi metterci.
  16. # Puoi inserire nel testo dei tag speciali che facciano apparire dei simboli:
  17. # [S] → ★
  18. # [B] → ●
  19. # [R] → ®
  20. # [C] → ©
  21. # [L] → ♥
  22. #===============================================================================
  23. # CONFIGURAZIONE
  24. #===============================================================================
  25. module H87_Infos
  26.   #Vuoi mostrare la versione del gioco? (funziona solo se hai Game Updater)
  27.   Mostra_Versione = true
  28.   #Vuoi mostrare il titolo del gioco?
  29.   Mostra_Titolo = true
  30.   #Inserisci il nome del file che conterrà le informazioni
  31.   Nome_File = "Info.ini"
  32.   #Inserisci la larghezza della pagina del testo
  33.   Larghezza = 500
  34.  
  35.   #Opzioni barra di scorrimento
  36.  
  37.   #Vuoi mostrare la barra di scorrimento?
  38.   Attiva_Barra = true
  39.   #Imposta la larghezza della barra di scorrimento
  40.   Lar_Barra = 10
  41.   #Imposta la distanza della barra dal margine destro dello schermo
  42.   X = 10
  43.   #imposta la distanza della barra dal margine superiore e inferiore dello schermo
  44.   Y = 10
  45.   #vuoi che la barra si nasconda automaticamente se non si scorre il testo?
  46.   Nascondi_Barra = true
  47.  
  48.   #Nel caso non sia installato lo script Menu Titolo Animato:
  49.   IconaInfo = "T_Info"    #icona del comando del menu titolo
  50.   TestoInfo = "B_Info"   #fumetto del comando del menu titolo
  51. end
  52. #===============================================================================
  53. # FINE CONFIGURAZIONE
  54. # Non modificare oltre lo script, se non sai cosa stai facendo!
  55. #===============================================================================
  56.  
  57. #===============================================================================
  58. # Classe Scene_GameInfo
  59. #===============================================================================
  60. class Scene_GameInfo < Scene_Base
  61.   include H87_Infos #include il modulo
  62.  
  63.   #-----------------------------------------------------------------------------
  64.   # * Start
  65.   #-----------------------------------------------------------------------------
  66.   def start
  67.     super
  68.     create_background
  69.     @speed = 0    #La velocità di scorrimento del testo
  70.     @pressione = 0  #Indica se e quale tasto è premuto
  71.     carica_testo
  72.     crea_finestra
  73.     crea_barra if barra_visibile?
  74.   end
  75.  
  76.   #-----------------------------------------------------------------------------
  77.   # * Carica il testo dal file
  78.   #-----------------------------------------------------------------------------
  79.   def carica_testo
  80.     if File.exist? (Nome_File) #apre il file in sola lett.
  81.           array = []
  82.           File.open(Nome_File,"r") do |f|
  83.             f.each_line {|riga| array.push(riga.to_s)}
  84.             @testo = array
  85.           end
  86.     else
  87.           msgbox("File non trovato")
  88.           @testo = "Vuoto"
  89.     end
  90.   end
  91.  
  92.   #-----------------------------------------------------------------------------
  93.   # * Crea la finestra del testo
  94.   #-----------------------------------------------------------------------------
  95.   def crea_finestra
  96.     @quadrato = Viewport.new(0,0,Graphics.width,Graphics.height)
  97.     @finestra = Window_Infos.new(@testo)
  98.     @finestra.viewport = @quadrato
  99.     @finestra.x = (Graphics.width-@finestra.width)/2 #finestra centrata
  100.     @finestra.opacity = 0
  101.     #calcolo del margine di scorrimento ai bordi
  102.     if @finestra.height <= Graphics.height+32
  103.           @calc = -32
  104.     else
  105.           @calc = Graphics.height-@finestra.height-32
  106.     end
  107.   end
  108.  
  109.   #-----------------------------------------------------------------------------
  110.   # * Aggiornamento
  111.   #-----------------------------------------------------------------------------
  112.   def update
  113.     super
  114.     muovi_giu if Input.press?(:DOWN)
  115.     muovi_su  if Input.press?(:UP)
  116.     esci if Input.trigger?(:B)
  117.     muovi_testo
  118.     muovi_barra if barra_visibile?
  119.   end
  120.  
  121.   #-----------------------------------------------------------------------------
  122.   # * Muovi giù
  123.   #-----------------------------------------------------------------------------
  124.   def muovi_giu
  125.     return if @finestra.y < @calc
  126.     @pressione=1
  127.     @speed = 0 if @speed < 0
  128.     @speed += 0.5
  129.     @speed = 50 if @speed > 50
  130.     if barra_visibile?
  131.           @barra.opacity += 50
  132.           @rettangolo.opacity += 50
  133.     end
  134.   end
  135.  
  136.   #-----------------------------------------------------------------------------
  137.   # * Muovi su
  138.   #-----------------------------------------------------------------------------
  139.   def muovi_su
  140.     return if @finestra.y > 32
  141.     @pressione=2
  142.     @speed = 0 if @speed > 0
  143.     @speed -= 0.5
  144.     @speed = -50 if @speed < -50
  145.     if barra_visibile?
  146.           @barra.opacity += 50
  147.           @rettangolo.opacity += 50
  148.     end
  149.   end
  150.  
  151.   #-----------------------------------------------------------------------------
  152.   # * Esci
  153.   #-----------------------------------------------------------------------------
  154.   def esci
  155.     Sound.play_cancel
  156.     SceneManager.return
  157.   end
  158.  
  159.   #-----------------------------------------------------------------------------
  160.   # * Muovi il testo
  161.   #-----------------------------------------------------------------------------
  162.   def muovi_testo
  163.     if @pressione == 0 #se non viene premuto su o giù, la velocità diminuisce
  164.           @finestra.y += 2 if @finestra.y < 0            #torna se è sul bordo
  165.           @finestra.y -= 2 if @finestra.y > @calc+32
  166.           if @speed > 0
  167.             @speed -= 0.5
  168.           elsif @speed < 0
  169.             @speed += 0.5
  170.           end
  171.     end
  172.     @finestra.y -= @speed/4
  173.     if @finestra.y < @calc-32;@finestra.y = @calc-32;@speed=0;end
  174.     if @finestra.y > 32*2;@finestra.y = 32*2;@speed=0;end
  175.     @pressione = 0
  176.   end
  177.  
  178.   #-----------------------------------------------------------------------------
  179.   # * Crea la barra
  180.   #-----------------------------------------------------------------------------
  181.   def crea_barra
  182.     larghezza = Lar_Barra
  183.     x = Graphics.width-larghezza-X
  184.     y = Y
  185.     altezza = Graphics.height-y-10
  186.     colore_retro = Color.new(0,0,0,100)
  187.     immagine = Bitmap.new(larghezza,altezza)
  188.     immagine.fill_rect(0,0,larghezza,altezza,colore_retro)
  189.     @rettangolo = Sprite.new
  190.     @rettangolo.bitmap = immagine
  191.     @rettangolo.x = x
  192.     @rettangolo.y = y
  193.     bianco = Color.new(255,255,255,200)
  194.     grigio = Color.new(200,200,200,200)
  195.     calcola_alt = altezza*(Graphics.height.to_f/@finestra.height.to_f)
  196.     immaginebarra = Bitmap.new(larghezza,calcola_alt)
  197.     immaginebarra.gradient_fill_rect(0,0,larghezza,calcola_alt,bianco,grigio)
  198.     immaginebarra.blur
  199.     @barra = Sprite.new
  200.     @barra.bitmap = immaginebarra
  201.     @barra.x = x
  202.     @barra.y = y
  203.   end
  204.  
  205.   #-----------------------------------------------------------------------------
  206.   # * Calcola la prossima coordinata della barra di scorrimento
  207.   #-----------------------------------------------------------------------------
  208.   def calcola_destinazione
  209.     minimo = Y
  210.     massimo = minimo + @rettangolo.height - @barra.height
  211.     lunghezza = massimo-minimo
  212.     lung_finestra = @finestra.height
  213.     proporzione = lunghezza.to_f/(lung_finestra-Graphics.height).to_f
  214.     destinazione = @finestra.y.to_f*(-1.0)*proporzione
  215.     destinazione = minimo if destinazione < minimo
  216.     destinazione = massimo if destinazione > massimo
  217.     return destinazione.to_i
  218.   end
  219.  
  220.   #-----------------------------------------------------------------------------
  221.   # * Aggiorna la grafica della barra
  222.   #-----------------------------------------------------------------------------
  223.   def muovi_barra
  224.     @barra.y = calcola_destinazione
  225.     if Nascondi_Barra
  226.           @barra.opacity -= 2
  227.           @rettangolo.opacity -= 2
  228.     end
  229.   end
  230.  
  231.   #-----------------------------------------------------------------------------
  232.   # * Elimina le barre una volta che si torna indietro
  233.   #-----------------------------------------------------------------------------
  234.   def elimina_barre
  235.     @rettangolo.dispose
  236.     @rettangolo.bitmap.dispose
  237.     @barra.dispose
  238.     @barra.bitmap.dispose
  239.   end
  240.  
  241.   #-----------------------------------------------------------------------------
  242.   # * Restituisce true se la barra è attiva
  243.   #-----------------------------------------------------------------------------
  244.   def barra_visibile?
  245.     return false if Attiva_Barra == false or @barra == nil
  246.     #return false if Graphics.height+32 >= @finestra.height
  247.     return true
  248.   end
  249.  
  250.   #-----------------------------------------------------------------------------
  251.   # * Termina
  252.   #-----------------------------------------------------------------------------
  253.   def terminate
  254.     super
  255.     elimina_barre if barra_visibile?
  256.     @finestra.dispose
  257.     @quadrato.dispose
  258.     dispose_background
  259.   end
  260.  
  261.   #-----------------------------------------------------------------------------
  262.   # * Crea Sfondo
  263.   #-----------------------------------------------------------------------------
  264.   def create_background
  265.     @background_sprite = Sprite.new
  266.     @background_sprite.bitmap = SceneManager.background_bitmap
  267.     @background_sprite.color.set(16, 16, 16, 128)
  268.   end
  269.  
  270.   #--------------------------------------------------------------------------
  271.   # * Elimina lo sfondo
  272.   #--------------------------------------------------------------------------
  273.   def dispose_background
  274.     @background_sprite.dispose
  275.   end
  276. end
  277.  
  278. #===============================================================================
  279. # Classe Window_Infos
  280. #===============================================================================
  281. class Window_Infos < Window_Base
  282.   def initialize(testo)
  283.     alt = (line_height*(testo.size+1))+32
  284.     super((Graphics.width-H87_Infos::Larghezza)/2,0,H87_Infos::Larghezza,alt)
  285.     @testo = testo
  286.     @righe = @testo.size+1
  287.     refresh
  288.   end
  289.  
  290.   #-----------------------------------------------------------------------------
  291.   # Refresh
  292.   #-----------------------------------------------------------------------------
  293.   def refresh
  294.     self.contents.clear
  295.     colore = Color.new(255,255,255,100) #colore bianco
  296.     self.contents.fill_rect(4, 0, self.width-32, 1,colore) #linea superiore
  297.     if H87_Infos::Mostra_Titolo
  298.           self.contents.draw_text(4,0,self.width-32,line_height,$data_system.game_title)
  299.     end
  300.     if H87_Infos::Mostra_Versione and $imported["H87A_Updater"]#Updater
  301.           vers = "Versione: "+Updater.current_version.to_s
  302.           self.contents.draw_text(4,0,self.width-40,line_height,vers,2)
  303.     end
  304.     for i in 1..@righe-1
  305.           @testo[i-1].gsub!("\n","") if @testo[i-1].gsub("\n","") != nil
  306.           @testo[i-1].gsub!("[R]","®")
  307.           @testo[i-1].gsub!("[C]","©")
  308.           @testo[i-1].gsub!("[L]","♥")
  309.           @testo[i-1].gsub!("[S]","★")
  310.           @testo[i-1].gsub!("[B]","●")
  311.           self.contents.draw_text(4,line_height*i,self.width-32,line_height,@testo[i-1],1)
  312.     end
  313.     self.contents.fill_rect(4,(line_height*@righe)-1, self.width-32, 1,colore) #linea inf
  314.   end
  315. end
  316.  
  317. #===============================================================================
  318. # Classe Scene_Title
  319. #===============================================================================
  320. class Scene_Title < Scene_Base
  321.   #-----------------------------------------------------------------------------
  322.   # * Comando per accedere alle info
  323.   #-----------------------------------------------------------------------------
  324.   def command_infos
  325.     Sound.play_ok
  326.     SceneManager.call(Scene_GameInfo)
  327.   end
  328.  
  329.   if $imported["H87_TitleMenu"]
  330.   alias metodo_aliasato crea_contenuti_personalizzati
  331.   def crea_contenuti_personalizzati
  332.     metodo_aliasato
  333.     add_cursor(:info, "command_infos",H87_Infos::IconaInfo,H87_Infos::TestoInfo)
  334.   end;end
  335.  
  336. unless $imported["H87_TitleMenu"]
  337.   alias nuovo_command_window create_command_window unless $@
  338.   def create_command_window
  339.     nuovo_command_window
  340.     @command_window.set_handler(:info, method(:command_infos))
  341.   end
  342. end
  343. end
  344.  
  345. class Window_TitleCommand < Window_Command
  346.   alias nuovo_command_list make_command_list unless $@
  347.   def make_command_list
  348.     nuovo_command_list
  349.     add_command(H87_Infos::TestoInfo, :info)
  350.   end
  351.  
  352. end #scene_title
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top