Advertisement
Rafael_Sol_Maker

RAFAEL_SOL_MAKER's VX AUDIOFILE ENTENSION v.1.0

Nov 17th, 2011
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 4.59 KB | None | 0 0
  1. #===============================================================================
  2. #             RAFAEL_SOL_MAKER's VX AUDIOFILE ENTENSION v.1.0
  3. #        (Com implementações do 'Audio Position' 1.0, do OriginalWij)
  4. #-------------------------------------------------------------------------------
  5. # Descrição:    Complementa as funções de aúdio adicionando alguns parâmetros,
  6. #               como o 'ME.last' e 'SE.last' para tocar os últimos efeitos
  7. #               sonoros executados recentemente.
  8. #               Essa versão com implementações do OriginalWij também dá acesso
  9. #               à posição da execução do som (ex.: BGM.position), o que
  10. #               pode ser muito útil para usar em sincronizações de sons, etc.
  11. #               Futuramente esse script poderá se tornar mais poderoso e ter
  12. #               mais controle sobre os arquivos de aúdio executados pelo jogo.
  13. #-------------------------------------------------------------------------------
  14. # Modo de usar: Basta usar com o comando de som da sua preferência. Ex.:
  15. #                 print RPG::BGM.position.to_s, RPG::BGS.position.to_s
  16. #               OBS.: Caso o som se repita ou já tenha terminado de ser
  17. #               executado, o tempo de posição continuará correndo, até que se dê
  18. #               um 'stop' para resetar os contadores.
  19. #-------------------------------------------------------------------------------
  20. # Agradecimentos Especiais: OriginalWij
  21. #-------------------------------------------------------------------------------
  22. #===============================================================================
  23.  
  24. module RPG  
  25.  
  26.   class BGM < AudioFile
  27.     @@last = BGM.new
  28.     @@position = 0
  29.     def play
  30.       if @name.empty?
  31.         Audio.bgm_stop
  32.         @@last = BGM.new
  33.         @@position = 0
  34.       else
  35.         Audio.bgm_play("Audio/BGM/" + @name, @volume, @pitch)
  36.         @@last = self
  37.         @@position = Time.now
  38.       end
  39.     end
  40.    
  41.     def self.stop
  42.       Audio.bgm_stop
  43.       @@last = BGM.new
  44.       @@position = 0
  45.     end
  46.    
  47.     def self.fade(time)
  48.       Audio.bgm_fade(time)
  49.       @@last = BGM.new
  50.       @@position = 0
  51.     end
  52.    
  53.     def self.last
  54.       return @@last
  55.     end
  56.    
  57.     def self.position
  58.       return 0 if @@position == 0
  59.       return Time.now - @@position
  60.     end
  61.   end
  62.  
  63.   class BGS < AudioFile
  64.     @@last = BGS.new
  65.     @@position = 0
  66.     def play
  67.       if @name.empty?
  68.         Audio.bgs_stop
  69.         @@last = BGS.new
  70.         @@position = 0
  71.       else
  72.         Audio.bgs_play("Audio/BGS/" + @name, @volume, @pitch)
  73.         @@last = self
  74.         @@position = Time.now
  75.       end
  76.     end
  77.    
  78.     def self.stop
  79.       Audio.bgs_stop
  80.       @@last = BGS.new
  81.       @@position = 0
  82.     end
  83.    
  84.     def self.fade(time)
  85.       Audio.bgs_fade(time)
  86.       @@last = BGS.new
  87.       @@position = 0
  88.     end
  89.    
  90.     def self.last
  91.       return @@last
  92.     end
  93.  
  94.     def self.position
  95.       return 0 if @@position == 0
  96.       return Time.now - @@position
  97.     end
  98.   end
  99.  
  100.   class ME < AudioFile
  101.     @@last = ME.new
  102.     @@position = 0
  103.     def play
  104.       if @name.empty?
  105.         Audio.me_stop
  106.         @@last = ME.new
  107.         @@position = 0
  108.       else
  109.         Audio.me_play("Audio/ME/" + @name, @volume, @pitch)
  110.         @@last = self        
  111.         @@position = Time.now
  112.       end      
  113.     end
  114.    
  115.     def self.stop
  116.       Audio.me_stop
  117.       @@last = ME.new
  118.       @@position = 0
  119.     end
  120.    
  121.     def self.fade(time)
  122.       Audio.me_fade(time)
  123.       @@last = ME.new
  124.       @@position = 0
  125.     end
  126.    
  127.     def self.last
  128.       return @@last
  129.     end
  130.    
  131.     def self.position
  132.       return 0 if @@position == 0
  133.       return Time.now - @@position
  134.     end    
  135.   end  
  136.  
  137.   class SE < AudioFile
  138.     @@last = SE.new
  139.     @@position = 0
  140.     def play      
  141.       if @name.empty?
  142.         Audio.se_stop
  143.         @@last = SE.new
  144.         @@position = 0
  145.       else
  146.         Audio.se_play("Audio/SE/" + @name, @volume, @pitch)
  147.         @@last = self        
  148.         @@position = Time.now
  149.       end      
  150.     end
  151.    
  152.     def self.stop
  153.       Audio.se_stop
  154.       @@last = SE.new
  155.       @@position = 0
  156.     end
  157.    
  158.     def self.fade(time)
  159.       #Audio.se_fade(time) #NÃO EXISTE!!
  160.       #@@last = SE.new
  161.       #@@position = 0
  162.       raise(NotImplementedError,"O fade do Efeitos Sonoros(SE) não está disponível para essa versão do Script!")
  163.     end
  164.    
  165.     def self.last
  166.       return @@last
  167.     end
  168.    
  169.     def self.position
  170.       return 0 if @@position == 0
  171.       return Time.now - @@position
  172.     end    
  173.   end
  174. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement