O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

Gremory Parallax Title Move

Iniciado por MateusDxD, 25/03/2019 às 11:49

25/03/2019 às 11:49 Última edição: 24/07/2019 às 18:30 por MateusDxD
[box class=titlebg]
Gremory Parallax Title Move
[/box]
Compatibilidade: Boa
Facilidade de Uso: Fácil
Lag Gerado: Nulo

[box class=titlebg]
Apresentação
[/box]
Este script serve para dar uma alterada na tela de título, ao invés de ser uma imagem estática, esse script coloca um parallax em movimento na tela de título, dando um efeito bem bacana e bonito! Se você for usar uma imagem que não seja do RTP, coloque a imagem que queira usar na pasta Parallax, a imagem deve ter as medidas de 544x416 ou 544x544(Resolução padrão dos Parallax do RPG Maker VX Ace), você escolhe a que melhor lhe satisfazer.
Esse script deu muito trabalho para eu fazer, pois ainda sou iniciante em Ruby, me baseei muito nos scripts do MogHunter(e aprendi muito também! :XD:) e pesquisei muito também! Prentendo fazer melhorias nesse script!

[box class=titlebg]
Changelogs
[/box]

[box2 class=titlebg title=Versão 1.1 Changelog]

- Mudanças para maior compatibilidade! (Agradecimentos a Raizen!)

[/box2]
[box2 class=titlebg title=Versão 1.0 Changelog]
- 1º Versão Lançada!
[/box2]

#===============================================================================
# Gremory Parallax Title Move
#-------------------------------------------------------------------------------
# Autor: MateusDxD
# Versão: 1.1
# Comunidade: www.centrorpg.com
#-------------------------------------------------------------------------------
# Esse script permite colocar um parallax animado na tela de título!
#------------------------------------------------------------------------------- 
# Agradecimentos Finais à Enterbrain, pela classe Scene_Title
# Centro RPG Maker, onde eu disponibilizei o script
# Script livre para o uso, dando os devidos créditos! ;)
#===============================================================================
class Scene_Title < Scene_Base
#===============================================================================
# Configuração
#===============================================================================
module Gremory_Parallax
  
  # Define o Parallax
  PARALLAX_BG = "StarlitSky"
  
  # Define a Velocidade no eixo Horizontal
  SPEED_X = 0
  
  # Define a Velocidade no eixo Vertical
  SPEED_Y = 1

end
#===============================================================================
  #-----------------------------------------------------------------------------
  # * Parallax Title
  #-----------------------------------------------------------------------------
  alias gremory_parallax_start start
  def start 
    gremory_parallax_start
    @sprite1.bitmap.dispose
    @sprite1.dispose
    @sprite1 = Plane.new
    @sprite1.bitmap = Cache.parallax(Gremory_Parallax::PARALLAX_BG)
   end
  #-----------------------------------------------------------------------------
  # * Parallax Speed
  #-----------------------------------------------------------------------------
  alias gremory_parallax_speed update
  def update
    @sprite2.update
    @sprite1.ox += Gremory_Parallax::SPEED_X
    @sprite1.oy += Gremory_Parallax::SPEED_Y
    gremory_parallax_speed
  end
end


[box class=titlebg]Créditos Finais[/box]
Criador: MateusDxD
Script feito com base na classe Scene_Title
Script livre para o uso, dando os devídos créditos!



Passei o olho por cima do código aqui, e inteligente ter usado a classe Plane. Imagino que seja a padrão para panoramas. Eu, se fosse fazer isso, certamente usaria bitmap normalmente e faria o loop do panorama na mão, deixando o código desnecessariamente maior. Bacana seu trabalho, valeu todo esforço e pesquisa.  :XD:


Muito bom manolo, ficou bem legal, fico feliz de ver scripters novos!

Se aceitar algumas dicas pra melhorar o code um pouco  :XD:

Se possível tente usar a classe Module pra configurar as constantes, isso porque você consegue evitar qualquer conflito com outras constantes de outros scripts. Ex:
module MateusDxD_Gremory
  # Define o Parallax
  PARALLAX_BG = "CloudySky2"
  
  # Define a Velocidade no eixo Horizontal
  SPEED_X = 2
  
  # Define a Velocidade no eixo Vertical
  SPEED_Y = 0
end


ai no code ficaria assim:
@sprite1.bitmap = Cache.parallax(MateusDxD_Gremory::PARALLAX_BG)


Segundo ponto, evite esses nomes de alias:
script

e
speed


o que ocorre, o alias é uma função que copia o método e redefine ele com o nome que você escolheu, no caso o método script passa a ter a mesma funcionalidade do método start. Vamos supor algum desenvolvedor escolha esse nome de alias e o script dele venha depois do seu, mas o alias que ele faz é
alias script update

o método script passa a ter os valores de update e ai já viu no que dá  :'-':.

Eu escolheria nomes bem especificos, por exemplo:

alias gregory_parallax_start start


Assim aumenta bem as compatibilidades desse script com outros scripts.

uou, muito obrigado pelas dicas Raizen!