SHARE
TWEET

Debug Frame VX

Holy87 Jul 12th, 2013 52 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. $imported = {} if $imported == nil
  2. $imported["H87_DebugConsolle"] = true
  3. #===============================================================================
  4. # TERMINALE DI DEBUG
  5. #===============================================================================
  6. # Autore: Holy87
  7. # Versione: 1.0
  8. #-------------------------------------------------------------------------------
  9. # Questo script è indirizzato fondamentalmente a scripters e a eventer esperti
  10. # quando per testare i loro script hanno bisogno di avere sotto controllo alcuni
  11. # parametri. Su VX Ace è già presente nativamente la finestra di terminale, con
  12. # cui vedere i messaggi nello script stampati con la funzione print(). Nel VX,
  13. # la funzione print() fa uscire un menu di popup che però interrompe il gioco,
  14. # e per messaggi multipli può essere piuttosto fastidioso. Questo script mostra
  15. # messaggi dagli script direttamente su schermo senza interrompere il gioco.
  16. #-------------------------------------------------------------------------------
  17. # Istruzioni:
  18. # Copiare lo script sotto Materials, prima del Main. Inserire negli script la
  19. # funzione DF.print("messaggio") per far mostrare una stringa sullo schermo.
  20. # Se scrivi DF.print("messaggio",true) la stringa sarà
  21. # di colore rosso (per evidenziare i messaggi che ritieni importanti)
  22. #-------------------------------------------------------------------------------
  23. # Note:
  24. # Questo script fa tutto e niente. Sbizzarritevi!
  25. # Il terminale viene mostrato solo se il gioco viene avviato in modalità Test.
  26. #-------------------------------------------------------------------------------
  27. # Compatibilità:
  28. # Scene_Base
  29. # - alias start, update, terminate
  30. #-------------------------------------------------------------------------------
  31.  
  32. module DF
  33.   module SETTINGS
  34. #===============================================================================
  35. # ** CONFIGURAZIONE **
  36. #===============================================================================
  37.     #Righe massime da mostrare. Oltre questo numero quelli precedenti verranno
  38.     # eliminati.
  39.     Max = 25
  40.    
  41.     #Tempo di scomparsa del terminale se non viene mostrato alcun messaggio.
  42.     FadeTime = 2200#in frame
  43.    
  44.     #Impostazioni del testo
  45.     Size = 15 #grandezza del testo
  46.     Line = 17 #altezza della riga
  47.    
  48.    
  49.    
  50.    
  51.   end
  52. #===============================================================================
  53. # ** FINE CONFIGURAZIONE **
  54. # Attenzione: Non modificare ciò che c'è oltre, a meno che tu non sappia ciò che
  55. # fai! C'è gente che si è suicidata per molto meno, fidati.
  56. #===============================================================================
  57.   def self.activated?
  58.     return $TEST
  59.   end
  60.  
  61.   #-----------------------------------------------------------------------------
  62.   # *chiamata
  63.   #-----------------------------------------------------------------------------
  64.   def self.print(line,red = false)
  65.     line.inspect.split(/[\r\n]+/).each { |riga|
  66.       $scene.push_debug_text(riga,red)
  67.     }
  68.   end
  69. end
  70.  
  71. #===============================================================================
  72. # ** Classe DebugFrame
  73. #===============================================================================
  74. class DebugFrame
  75.  
  76.   #-----------------------------------------------------------------------------
  77.   # * inizializzazione
  78.   #-----------------------------------------------------------------------------
  79.   def initialize(viewport)
  80.     if DF.activated?
  81.       @text = []
  82.       @sprite = Sprite.new(viewport)
  83.       @sprite.bitmap = nuovo_bitmap
  84.       @visible = true
  85.     else
  86.       @visible = false
  87.     end
  88.   end
  89.  
  90.   #-----------------------------------------------------------------------------
  91.   # * creazione della bitmap
  92.   #-----------------------------------------------------------------------------
  93.   def nuovo_bitmap(text = nil,red=false)
  94.     @timer = 0
  95.     @sprite.opacity = 255
  96.     bitmap = Bitmap.new(Graphics.width,Graphics.height)
  97.     bitmap.font.size = DF::SETTINGS::Size
  98.     line = DF::SETTINGS::Line
  99.     if text != nil and text != ""
  100.       bitmap.gradient_fill_rect(0,0,Graphics.width/2,line*@text.size,Color.new(0,0,0,150),Color.new(0,0,0,0))
  101.       for i in 0..text.size-1
  102.         if red
  103.           bitmap.font.color = Color.new(255,0,0)
  104.         else
  105.           bitmap.font.color = Color.new(255,255,255)
  106.         end
  107.         bitmap.draw_text(4,line*i,Graphics.width,line,text[i])
  108.       end
  109.     end
  110.     return bitmap
  111.   end
  112.  
  113.   #-----------------------------------------------------------------------------
  114.   # * aggiornamento
  115.   #-----------------------------------------------------------------------------
  116.   def update
  117.     return if DF::SETTINGS::FadeTime == 0
  118.     @timer += 1
  119.     if @timer > DF::SETTINGS::FadeTime
  120.       @sprite.opacity -= 1
  121.     end
  122.   end
  123.  
  124.   #-----------------------------------------------------------------------------
  125.   # * eliminazione
  126.   #-----------------------------------------------------------------------------
  127.   def dispose
  128.     @sprite.bitmap.dispose
  129.     @sprite.dispose
  130.   end  
  131.  
  132.   #-----------------------------------------------------------------------------
  133.   # * inserimento di una nuova riga
  134.   #-----------------------------------------------------------------------------
  135.   def push_text(line,red=false)
  136.     return unless DF.activated?
  137.     if @text.size < DF::SETTINGS::Max
  138.       @text.push(line.to_s)
  139.     else
  140.       for i in 1..@text.size-1
  141.         @text[i-1]=@text[i]
  142.       end
  143.       @text[i] = line
  144.     end
  145.     @sprite.bitmap = nuovo_bitmap(@text,red)
  146.   end
  147.  
  148.   #-----------------------------------------------------------------------------
  149.   # * layer z
  150.   #-----------------------------------------------------------------------------
  151.   def z=(value)
  152.     @sprite.z = value
  153.   end
  154. end
  155.  
  156. #===============================================================================
  157. # ** Classe Scene_Base
  158. #===============================================================================
  159. class Scene_Base
  160.   #-----------------------------------------------------------------------------
  161.   # * alias di start
  162.   #-----------------------------------------------------------------------------
  163.   alias h87_df_start start unless $@
  164.   def start
  165.     h87_df_start
  166.     if DF.activated?
  167.       @debugViewport = Viewport.new(0,0,Graphics.width,Graphics.height)
  168.       @debugframe = DebugFrame.new(@debugViewport)
  169.       @debugViewport.z = 999
  170.     end
  171.   end
  172.  
  173.   #-----------------------------------------------------------------------------
  174.   # * inserimento del debug_text
  175.   #-----------------------------------------------------------------------------
  176.   def push_debug_text(line,red=false)
  177.     return if @debugframe == nil
  178.     @debugframe.push_text(line,red)
  179.   end
  180.  
  181.   #-----------------------------------------------------------------------------
  182.   # * aggiornamento
  183.   #-----------------------------------------------------------------------------
  184.   alias h87_df_update update unless $@
  185.   def update
  186.     h87_df_update
  187.     @debugframe.update if DF.activated?
  188.   end
  189.  
  190.   #-----------------------------------------------------------------------------
  191.   # * terminazione
  192.   #-----------------------------------------------------------------------------
  193.   alias h87_df_terminate terminate unless $@
  194.   def terminate
  195.     h87_df_terminate
  196.     if DF.activated?
  197.       @debugframe.dispose
  198.       @debugViewport.dispose
  199.     end
  200.   end
  201.  
  202. end #scene_base
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