Advertisement
DaxSoft

Animate Show Picture 2.0

Sep 20th, 2014
464
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.21 KB | None | 0 0
  1. #==============================================================================
  2. # • Animation Show Picture
  3. #==============================================================================
  4. # Autor: Dax
  5. # Versão: 2.0
  6. # Site: www.dax-soft.weebly.com
  7. # Requerimento: N/A
  8. #==============================================================================
  9. # • Descrição:
  10. #------------------------------------------------------------------------------
  11. # Basicamente faz com que uma imagem seja executada em frames. Exemplo, você
  12. # usa o comando de Mostrar Imagem, aí você usa o call script é anima ela. Porém
  13. # a imagem deve estar nomeada com underline é o númerador do frame na frente,
  14. # exemplo: Img_0, Img_1.
  15. # Agora você pode usar uma imagem dividida em frames. Exemplo disso é o IconSet.
  16. # Caso você não entenda bem, veja o exemplo da Demo.
  17. #==============================================================================
  18. # • Como usar: Chamar Script.
  19. #------------------------------------------------------------------------------
  20. # <• comando: > apic(id, wait, last, repeat) :
  21. # id -> id da imagem mostrada.
  22. # wait -> tempo de espera pra mudar de imagem.
  23. # last -> Última imagem do frame. Ponha o número do frame.
  24. # * repeat -> Por padrão é true. Caso você não queira que a imagem fique repitindo,
  25. # deixe false. Caso queira, que depois de repitir um número de vez, deixe um
  26. # número.
  27. # Exemplo:
  28. # apicture(1, 20, 3)
  29. # <• comando: > fpic(id, wait, last, size, repeat) :
  30. # id -> id da imagem mostrada.
  31. # wait -> tempo de espera pra mudar de imagem.
  32. # last -> Última parte do frame. Ponha o número.
  33. # size -> Largura e altura de cada frame.
  34. # * repeat -> Por padrão é true. Caso você não queira que a imagem fique repitindo,
  35. # deixe false. Caso queira, que depois de repitir um número de vez, deixe um
  36. # número.
  37. # Exemplo:
  38. # fpicture(1, 20, 5, [32, 32])
  39. #==============================================================================
  40. #==============================================================================
  41. # • Game_Temp
  42. #==============================================================================
  43. class Game_Temp
  44. #----------------------------------------------------------------------------
  45. # • Variáveis públicas da instância.
  46. #----------------------------------------------------------------------------
  47. attr_accessor :asp
  48. #----------------------------------------------------------------------------
  49. # • Inicialização dos objetos.
  50. #----------------------------------------------------------------------------
  51. alias :animate_show_picture_initialize :initialize
  52. def initialize(*a)
  53. animate_show_picture_initialize(*a)
  54. @asp = []
  55. end
  56. end
  57. #==============================================================================
  58. # • Game_Interpreter
  59. #==============================================================================
  60. class Game_Interpreter
  61. def apicture(id, wait, last, repeat=true)
  62. $game_temp.asp[id] = [id, wait, last, false, repeat]
  63. end
  64. def fpicture(id, wait, last, size, repeat=true)
  65. $game_temp.asp[id] = [id, wait, last, true, size, repeat]
  66. end
  67. end
  68. #==============================================================================
  69. # • Sprite_Picture
  70. #==============================================================================
  71.  
  72. class Sprite_Picture < Sprite
  73. #--------------------------------------------------------------------------
  74. # * Inicialização do objeto
  75. #--------------------------------------------------------------------------
  76. def initialize(viewport, picture)
  77. super(viewport)
  78. @picture = picture
  79. unless $game_temp.asp[@picture.number].nil? or $game_temp.asp[@picture.number][0] != @picture.number.to_i
  80. @count = @wait = $game_temp.asp[@picture.number][1]
  81. @max = $game_temp.asp[@picture.number][2]
  82. @repeat = [$game_temp.asp[@picture.number].last, false]
  83. unless $game_temp.asp[@picture.number][3]
  84. @index = @picture.name.split(/_/)[2].to_i
  85. self.bitmap = Cache.picture(@picture.name)
  86. else
  87. @index = 1
  88. @size = $game_temp.asp[@picture.number][4]
  89. @bitmap = Cache.picture(@picture.name)
  90. self.bitmap = Bitmap.new(@bitmap.width, @bitmap.height)
  91. self.bitmap.blt(0, 0, @bitmap, Rect.new(@index % @max * @size[0], 0, *@size))
  92. end
  93. end
  94. update
  95. end
  96. #--------------------------------------------------------------------------
  97. # * Disposição
  98. #--------------------------------------------------------------------------
  99. alias :apicture_dispose :dispose
  100. def dispose
  101. apicture_dispose
  102. $game_temp.asp.clear
  103. @bitmap.dispose
  104. end
  105. #--------------------------------------------------------------------------
  106. # * Atualização do bitmap de origem
  107. #--------------------------------------------------------------------------
  108. def update_bitmap
  109. unless $game_temp.asp[@picture.number].nil? or $game_temp.asp[@picture.number][0] != @picture.number
  110. @count ||= @wait ||= $game_temp.asp[@picture.number][1]
  111. @max ||= $game_temp.asp[@picture.number][2]
  112. @repeat ||= [$game_temp.asp[@picture.number].last, false]
  113. if @count < 0
  114. return if @repeat[1]
  115. @index ||= $game_temp.asp[@picture.number][3] ? 1 : @picture.name.split("_")[2].to_i
  116. if @index >= @max
  117. @index = 0
  118. if !@repeat[0]
  119. @repeat[1] = true
  120. elsif @repeat[0].is_a?(Integer)
  121. @repeat[0] -= 1
  122. @repeat[1] = @repeat[0] < 0
  123. end
  124. else
  125. @index = @index.next
  126. end
  127. @size ||= $game_temp.asp[@picture.number][4]
  128. @bitmap ||= Cache.picture(@picture.name)
  129. name = @picture.name.split("_")[0].to_s + "_" + @index.to_s
  130. unless $game_temp.asp[@picture.number][3]
  131. self.bitmap = Cache.picture(name)
  132. else
  133. self.bitmap ||= Bitmap.new(@bitmap.width, @bitmap.height)
  134. self.bitmap.clear
  135. self.bitmap.blt(0, 0, @bitmap, Rect.new(@index % @max * @size[0], 0, *@size))
  136. end
  137. @count = @wait
  138. else
  139. @count -= 1
  140. end
  141. else
  142. self.bitmap = Cache.picture(@picture.name)
  143. end
  144. end
  145. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement