Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #==============================================================================
- # • Animation Show Picture
- #==============================================================================
- # Autor: Dax
- # Versão: 2.0
- # Site: www.dax-soft.weebly.com
- # Requerimento: N/A
- #==============================================================================
- # • Descrição:
- #------------------------------------------------------------------------------
- # Basicamente faz com que uma imagem seja executada em frames. Exemplo, você
- # usa o comando de Mostrar Imagem, aí você usa o call script é anima ela. Porém
- # a imagem deve estar nomeada com underline é o númerador do frame na frente,
- # exemplo: Img_0, Img_1.
- # Agora você pode usar uma imagem dividida em frames. Exemplo disso é o IconSet.
- # Caso você não entenda bem, veja o exemplo da Demo.
- #==============================================================================
- # • Como usar: Chamar Script.
- #------------------------------------------------------------------------------
- # <• comando: > apic(id, wait, last, repeat) :
- # id -> id da imagem mostrada.
- # wait -> tempo de espera pra mudar de imagem.
- # last -> Última imagem do frame. Ponha o número do frame.
- # * repeat -> Por padrão é true. Caso você não queira que a imagem fique repitindo,
- # deixe false. Caso queira, que depois de repitir um número de vez, deixe um
- # número.
- # Exemplo:
- # apicture(1, 20, 3)
- # <• comando: > fpic(id, wait, last, size, repeat) :
- # id -> id da imagem mostrada.
- # wait -> tempo de espera pra mudar de imagem.
- # last -> Última parte do frame. Ponha o número.
- # size -> Largura e altura de cada frame.
- # * repeat -> Por padrão é true. Caso você não queira que a imagem fique repitindo,
- # deixe false. Caso queira, que depois de repitir um número de vez, deixe um
- # número.
- # Exemplo:
- # fpicture(1, 20, 5, [32, 32])
- #==============================================================================
- #==============================================================================
- # • Game_Temp
- #==============================================================================
- class Game_Temp
- #----------------------------------------------------------------------------
- # • Variáveis públicas da instância.
- #----------------------------------------------------------------------------
- attr_accessor :asp
- #----------------------------------------------------------------------------
- # • Inicialização dos objetos.
- #----------------------------------------------------------------------------
- alias :animate_show_picture_initialize :initialize
- def initialize(*a)
- animate_show_picture_initialize(*a)
- @asp = []
- end
- end
- #==============================================================================
- # • Game_Interpreter
- #==============================================================================
- class Game_Interpreter
- def apicture(id, wait, last, repeat=true)
- $game_temp.asp[id] = [id, wait, last, false, repeat]
- end
- def fpicture(id, wait, last, size, repeat=true)
- $game_temp.asp[id] = [id, wait, last, true, size, repeat]
- end
- end
- #==============================================================================
- # • Sprite_Picture
- #==============================================================================
- class Sprite_Picture < Sprite
- #--------------------------------------------------------------------------
- # * Inicialização do objeto
- #--------------------------------------------------------------------------
- def initialize(viewport, picture)
- super(viewport)
- @picture = picture
- unless $game_temp.asp[@picture.number].nil? or $game_temp.asp[@picture.number][0] != @picture.number.to_i
- @count = @wait = $game_temp.asp[@picture.number][1]
- @max = $game_temp.asp[@picture.number][2]
- @repeat = [$game_temp.asp[@picture.number].last, false]
- unless $game_temp.asp[@picture.number][3]
- @index = @picture.name.split(/_/)[2].to_i
- self.bitmap = Cache.picture(@picture.name)
- else
- @index = 1
- @size = $game_temp.asp[@picture.number][4]
- @bitmap = Cache.picture(@picture.name)
- self.bitmap = Bitmap.new(@bitmap.width, @bitmap.height)
- self.bitmap.blt(0, 0, @bitmap, Rect.new(@index % @max * @size[0], 0, *@size))
- end
- end
- update
- end
- #--------------------------------------------------------------------------
- # * Disposição
- #--------------------------------------------------------------------------
- alias :apicture_dispose :dispose
- def dispose
- apicture_dispose
- $game_temp.asp.clear
- @bitmap.dispose
- end
- #--------------------------------------------------------------------------
- # * Atualização do bitmap de origem
- #--------------------------------------------------------------------------
- def update_bitmap
- unless $game_temp.asp[@picture.number].nil? or $game_temp.asp[@picture.number][0] != @picture.number
- @count ||= @wait ||= $game_temp.asp[@picture.number][1]
- @max ||= $game_temp.asp[@picture.number][2]
- @repeat ||= [$game_temp.asp[@picture.number].last, false]
- if @count < 0
- return if @repeat[1]
- @index ||= $game_temp.asp[@picture.number][3] ? 1 : @picture.name.split("_")[2].to_i
- if @index >= @max
- @index = 0
- if !@repeat[0]
- @repeat[1] = true
- elsif @repeat[0].is_a?(Integer)
- @repeat[0] -= 1
- @repeat[1] = @repeat[0] < 0
- end
- else
- @index = @index.next
- end
- @size ||= $game_temp.asp[@picture.number][4]
- @bitmap ||= Cache.picture(@picture.name)
- name = @picture.name.split("_")[0].to_s + "_" + @index.to_s
- unless $game_temp.asp[@picture.number][3]
- self.bitmap = Cache.picture(name)
- else
- self.bitmap ||= Bitmap.new(@bitmap.width, @bitmap.height)
- self.bitmap.clear
- self.bitmap.blt(0, 0, @bitmap, Rect.new(@index % @max * @size[0], 0, *@size))
- end
- @count = @wait
- else
- @count -= 1
- end
- else
- self.bitmap = Cache.picture(@picture.name)
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement