RPG Maker Brasil Feed RSS

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!