Guia do RGSS2: Métodos
-
Sejam bem-vindos à quinta aula do guia do RGSS2. Vejam só, já passamos da metade! Aqui, abordaremos coisas muito úteis e que são essenciais no RPG Maker: métodos.
O que são métodos?
Métodos não são nada mais, nada menos que um bloco de código pré-definido que pode ser acessado várias vezes, de forma igual ou diferente. Um exemplo de seu uso seria isso: você tem que realizar uma operação de báskara, por exemplo, que é deveras comprida. Ao invés de escrever o código várias vezes, chamaríamos o código já escrito várias vezes. Uma curiosidade: as classes são feitas apenas por métodos.
Definindo e acessando um método
Para definir um método que exibisse um “Hello World” na tela, simplesmente usaríamos:
def Metodo print "Hello World" end
E, logo depois, para acessá-lo, usaríamos:
Metodo()
Por que temos que utilizar parênteses? Nesse caso, utilizamos parênteses vazios porque não há nenhum valor específico necessário para este método. Sem os parênteses, o interpretador viria o comando como uma constante. Agora, teste o seguinte:
def Metodo(x, y) print x + y end Metodo(1, 3) Metodo(4, 1)
Vejam o resultado. “4″ e “5″. Isso porque o método exige que as variáveis locais x e y sejam declaradas, para então fazer uma operação de adição entre os valores. Imagine isso em processos repetitivos e/ou automáticos, o quanto que facilita. Uma coisa que é comum é utilizar variáveis de instância, principalmente quando os métodos são utilizados em classes:
def Metodo(x, y) @x = x @y = y print @x + @y end Metodo(1, 2)
Redefinição e alias
Em n casos você pode precisar re-escrever o seu método, mudar o código contido nele, ou simplesmente acrescentar. Para isso, há duas maneiras: redefinição e alias. A redefinição é simples: basicamente, o método inteiro é apagado e o novo código é colocado em seu lugar.
# Definição do método def Metodo(x, y) print x + y end Metodo(1, 2) # 3 def Metodo(z) print "Agora exibe isso e " + z.to_s end Metodo(9) # Agora exibe isso e 9
Agora, o comando que realmente é importante é o comando alias. Podem parecer um pouco complicados, mas são simples. Alias, em inglês, significa “nome falso”, e é basicamente isso! Com o método alias, você renomeia um método, coloca o código existente nele e adiciona o novo ao novo método, com o nome antigo. A sintaxe é alias NomeNovo NomeAntigo. Um exemplo prático:
# Define um método com o nome "MetodoNormal" def MetodoNormal print "Mostrando o método \"MetodoNormal\"" end # Exibe o conteúdo do método "MetodoNormal" MetodoNormal() # Mostrando o método "MetodoNormal" # Fazer o alias # Jogar todo o código existente no método "MetodoNormal" no novo método # "NovoMetodoNormal", e redefinir o método "MetodoNormal" com um código novo. alias NovoMetodoNormal MetodoNormal def MetodoNormal print "Esse é o novo \"MetodoNormal\"" end MetodoNormal() # Esse é o novo "MetodoNormal" NovoMetodoNormal() # Mostrando o método "MetodoNormal"
E pronto! Acontece o que está descrito nos comentários. Ah, é comum utilizar o alias para redefinições também - para isso, você chama o método de novo nome dentro do método de nome antigo com código novo (vide o VX_SP1, no Editor de Scripts).
Curiosidades
print, p e loop são alguns dos métodos que já vêm criados no maker. Perceba que eles não têm coloração.
Observações
Os métodos seguem a mesma regra de nomenclatura que as variáveis - nada de caracteres especiais, nem espaços. Ah, palavras reservadas (def, begin, etc) são proibidas.
Exercícios
- Crie o método X, renomeie-o para Y e coloque um código novo em X, fazendo com que ele chame Y.
- Crie um método X, ative-o, reescreva-o e ative-o novamente.
Resolução:
# Criação do método X def Metodo print "Hello World!" end Metodo() # Ação de alias alias MetodoA Metodo def Metodo MetodoA() print "Hello World! Bicúbico!" end Metodo() # Re-escrever o método "Metodo" def Metodo print "Totalmente re-escrito." end Metodo()
Sumário
- O que são métodos
- Utilização dos métodos
- Redefinição e alias
E aqui terminam a aula sobre os métodos. Vocês terão uma abordagem com eles novamente na aula sobre classes, pois como disse, elas são formadas apenas de métodos. Dêem sugestões para possíveis melhorias nas aulas!
Até a próxima!








