Advertisement
FabioPichler

FP Simulador de Vídeos e Animações

Sep 19th, 2014
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 5.60 KB | None | 0 0
  1. #===============================================================================
  2. # * * FP Simulador de Vídeos e Animações * *
  3. #===============================================================================
  4. # * Criado por: Fábio Pichler  http://www.fabiopichler.com.br
  5. # * Versão: 1.0 Beta
  6. # * Compatível com: RPG Maker VX Ace
  7. # * Lançamento: 13/11/2014
  8. # * Página Web: http://www.fabiopichler.com.br/rpg-maker/fp-simulador-de-videos-e-animacoes/
  9. #
  10. #===============================================================================
  11. # * * Introdução * *
  12. #-------------------------------------------------------------------------------
  13. # * Este script simula a reprodução de animações ou de vídeos.
  14. # * A reprodução de animações será feita a partir de um conjunto de
  15. # imagens (frames). Os vídeos serão da mesma forma, mas com acréscimo de áudio.
  16. #
  17. #===============================================================================
  18. # * * Características * *
  19. #-------------------------------------------------------------------------------
  20. # * Compatibilidade: Boa
  21. # * Dificuldade: Médio
  22. # * Lag: Desprezível
  23. # * Bug: Nenhum conhecido
  24. #
  25. #===============================================================================
  26. # * * Modo de uso (Tutorial) * *
  27. #-------------------------------------------------------------------------------
  28. # Leia o documento RTF que se encontra junto a Demo, cujo o nome
  29. # é "Tutorial.rtf", veja este documento para informações de como
  30. # utilizar o script.
  31. #
  32. # * Você também poderá baixar o Documento RTF separado da Demo,
  33. # basta visitar a página do script:
  34. # http://www.fabiopichler.com.br/rpg-maker/fp-simulador-de-videos-e-animacoes/
  35. #
  36. #===============================================================================
  37. # * * Termos de Uso * *
  38. #-------------------------------------------------------------------------------
  39. # * Você poderá usar este script livremente em seu projeto/jogo, seja
  40. # comercial ou não-comercial, basta dar-me os devidos créditos.
  41. #
  42. # * Caso queira, poderá postar este script em outro fórum/site, desde que,
  43. # não altere nenhuma parte deste script, não tire meus créditos, não dê
  44. # créditos a sí mesmo pelo script.
  45. #
  46. # * Não adicione códigos e nem personalize o script, se for postar
  47. # em algum forum/site.
  48. #
  49. # * Você poderá alterar o que quiser no script, desde que,
  50. # fique restrito somente ao(s) seu(s) projeto(s)/jogo(s).
  51. #
  52. module FPSVA #Não mexa nesta linha
  53. #===============================================================================
  54. # * * Configuração * * [Alterações após o sinal de = (igualdade)]
  55. #-------------------------------------------------------------------------------
  56.   # * Diretório (geral) onde as imagens das animações ficarão.
  57.   PATH = "FP_Animations/"
  58.   # * Tecla para cortar as animações. Padrão: :C Representa a tecla Enter.
  59.   Button = :C
  60.   # * Largura da janela do seu jogo.
  61.   Width = 544 #Padrão: 544
  62.   # * Altura da janela do seu jogo.
  63.   Height = 416 #Padrão: 416
  64. #-------------------------------------------------------------------------------
  65. # * * Fim da configuração * *
  66. #===============================================================================
  67.  
  68. #===============================================================================
  69. # * * Script * * Não altere, se não souber :)
  70. #-------------------------------------------------------------------------------
  71. end
  72. class FPAnimation
  73.   attr_writer :stop_button
  74.   attr_writer :freeze_end
  75.   attr_writer :s_last_bgm
  76.   def initialize
  77.     @audio_name = ""
  78.     @x = 0
  79.     @y = 0
  80.     @freeze_end = 0
  81.     @bg = false
  82.     @play_audio = false
  83.     @stop_button = true
  84.     @s_last_bgm = false
  85.   end
  86.   def SetupVideo(x,y,bg)
  87.     @x = x
  88.     @y = y
  89.     @bg = bg
  90.   end
  91.   def SetupAudio(fname,play,stop = 0)
  92.     @audio_name = fname
  93.     @play_audio = play
  94.     @stop_audio = stop
  95.     @s_last_bgm = true
  96.   end
  97.   def PlayAudio(frame)
  98.     if(@s_last_bgm)
  99.       @last_bgm = RPG::BGM.last
  100.       RPG::BGM.stop
  101.       @s_last_bgm = false
  102.     end
  103.     if(@play_audio == frame)
  104.       RPG::BGM.new(@audio_name, 100, 100).play
  105.     end
  106.   end
  107.   def StopAudio(frame)
  108.     if(@stop_audio == frame && @stop_audio > 0)
  109.       RPG::BGM.stop
  110.     end
  111.   end
  112.   def Stop(wait)
  113.     if(wait > @freeze_end)
  114.       return true
  115.     end
  116.     Input.update
  117.     if(Input.trigger?(FPSVA::Button) && @stop_button)
  118.       return true
  119.     end
  120.     return false
  121.   end
  122.   def Play(fname,frame,last_frame,fp_sleep,zero=0)
  123.     if(@bg)
  124.       bg = Sprite.new
  125.       bg.z = 900
  126.       bg.bitmap = Bitmap.new(FPSVA::Width,FPSVA::Height)
  127.       bg.bitmap.fill_rect(0,0,FPSVA::Width,FPSVA::Height,Color.new(0,0,0))
  128.     end
  129.     sprite = Sprite.new
  130.     sprite.x = @x
  131.     sprite.y = @y
  132.     sprite.z = 999
  133.     wait = 0
  134.     (zero > 0) ? zstr="0"+zero.to_s : zstr=""
  135.     loop do
  136.       if(frame <= last_frame)
  137.         sprite.bitmap = Bitmap.new(FPSVA::PATH+fname+sprintf("%"+zstr+"i",frame))
  138.         PlayAudio(frame)
  139.         fp_sleep.times {
  140.           Graphics.update
  141.         }
  142.         sprite.bitmap.dispose if(frame < last_frame)
  143.         StopAudio(frame)
  144.         frame += 1
  145.       else
  146.         Graphics.update
  147.         wait += 1
  148.       end
  149.       break if(Stop(wait))
  150.     end
  151.     RPG::BGM.stop if(@stop_audio==0)
  152.     @last_bgm.play(@last_bgm.pos) if(@last_bgm != nil)
  153.     sprite.bitmap.dispose
  154.     sprite.dispose
  155.     bg.bitmap.dispose if(@bg)
  156.     bg.dispose if(@bg)
  157.   end
  158. end
  159. #-------------------------------------------------------------------------------
  160. # * * Fim do Script * *
  161. #===============================================================================
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement