Forums » RGSS

[Básico] Aula 3: O que são classes

    • 683 posts
    4 de junho de 2015 12h43min03s ART

    Aula 3: O que são classes

     

    Imagem Postada
    www.mundorpgmaker.com
    This work is licensed under a Creative Commons Atribuição-Uso não-comercial-Compartilhamento pela mesma licença 3.0 Unported License.

     

    Índice de todas as aulas aqui

     

    Índice
    • 3.0 - Classes?
    • 3.1 - Fazendo nossa própria classe
    • 3.2 - Conclusão
    • 3.3 - Dever de casa
    • 3.4 - Extra: erros comuns


    3.0 - Classes?


          Eu diria que o RGSS é fácil de se aprender porque se parece muito com a vida real já que, no RGSS, tudo gira em torno de objetos, assim como no mundo real: no mundo real, temos o objeto árvore, o objeto computador, vários objetos. No RGSS também se usa essa visão, para se facilitar. Muita gente estranha:como assim?Não há nada melhor para justificar minha afirmação do que mostrar com códigos.


          Primeiro de tudo, não mexa agora com o projeto da nossa aula anterior , crie um novo projeto no RPG Maker XP. Agora, crie um novo evento e , nesse evento, coloque o seguinte código de script:


    $game_player.jump(1,1)

          Depois disso, teste o jogo e ative seu evento. Opa! O jogador pulou, certo? Isso mesmo. O jogador, assim como seria no mundo real, é representado por um objeto: $game_player. Colocando o .jump(1, 1), mandamos o jogador pular , Observe que o jump é um método, assim como o "p" que vimos na aula.


    [lohan]

          Alguns métodos são exclusivos de alguns objetos, assim como o jump do jogador, e só podem ser chamados através desse objeto, no caso $game_player. Assim como métodos comuns, os métodos específicos de cada objeto devem ser definidos também, como aprendemos na aula passada .

    [/lohan]

     

    [lohan]

          Assim como métodos, objetos também devem ser definidos(ou usando um termo melhor, devem ser DECLARADOS). Veremos como a seguir.

    [/lohan]

     

          Chega de papo furado e vamos ao assunto. Classes são as definições dos objetos. Todos os objetos devem ser definidos, e fazemos isso com classes. Classes são como plantas de casas: assim como uma casa deve ter um desenho dizendo como ela será, mesmo antes de ser construida, um objeto deverá ter uma classe dizendo como ele deverá ser. Para definir um objeto, ou melhor, declará-lo, usamos um código nesse formato:


    class nome_da_classe   definições do que o objeto faz...end

    [lohan]

          Assim como definir um método, definir um objeto usando class não o ativa esse objeto. Para utilizar um objeto, temos sempre que criar um objeto primeiro(já que a classe é somente uma espécie de desenho, "planta de uma casa"), utilizando a classe declarada.Depois podemos mandar o objeto fazer o que ele faz, chamando seus métodos.Olhando dessa forma, um objeto é quase como se fosse um conjunto de métodos(na realidade ele não é).

    [/lohan]

     

    [lohan]

          "$game_player" tem alguns métodos interessantes, além do método de "pular". Alguns deles são: "move_down", "move_left", "move_up", "move_right".Teste eles como: "$game_player.move_down",  "$game_player.move_up",  etc.

    [/lohan]

     


    3.1 - Fazendo nossa própria classe


          Agora que vem a parte que interessa. Voltemos ao projeto vazio que fizemos na aula anterior. Limpe o "Main" e o deixe sem nada. Depois disso, cole esse código, que declara nossa classe:


    classImpressora   def imprimir_texto(texto)     p texto   endend

          Observe: Nossa classe se chama "Impressora". Geralmente, o nome de uma classe diz o que ela faz. E nessa classe declaramos um método: "imprimir_texto", que recebe o texto a imprimir. Quando o método "imprimir_texto" rodar, ele irá imprimir o texto que ele receber entre parênteses . Então vamos testar! 
    -Ooooops. Não, ainda falta uma coisa. Nós apenas declaramos a classe "Impressora", uma classe não faz nada, é só um "projeto de planta de uma casa", e definimos uma ação que ela faz, porém ainda não criamos um objeto dessa classe, como eu havia dito que sempre deve acontecer. Para criar um objeto usando esssa classe, adicione essa linha ao script:


    objeto_impressora =Impressora.new

          Nessa linha, criamos um objeto "impressora", e armazenamos numa variável chamada "objeto_impressora", todo objeto deve ser armazenado em uma variável, Caso contrário, ele desapareceria. Um exemplo é o objeto jogador(que nós fizemos pular),  que está armazenado na variável chamada "$game_player".


          Então, teste novamente o projeto...
    - Ué, ainda nada aconteceu!
    - Claro, nós apenas definimos a ação do objeto "Impressora", ainda não chamamos essa ação, como eu havia dito que sempre deveria ser. Para mandar a "Impressora" imprimir(ou melhor, mostrar o texto) adicione mais essa linha:


    objeto_impressora.imprimir_texto("Olá alunos!")

    [lohan]

          Observe que após uma classe ser declarada, vários objetos podem ser criados a partir dela. Poderíamos ter várias "impressoras", não apenas uma, desde que cada "impressora" fosse armazenada em uma variável separada.

    [/lohan]

     

    [lohan]

          Uma classe pode ter vários métodos. Um erro comum que muitos cometem é não colocar as declarações de método que eram para ser da classe dentro da declaração da classe.Exemplo:


     

    classImpressora   enddef imprimir_texto(texto)   p texto end

     

    [/lohan]

     


    3.2 - Conclusão


          Então pessoal, espero que tenham gostado dessa terceira aula, tive muita dedicação e trabalho para fazê-la, assim como tive para fazer as outras.Espero vocês na proxima aula! Aconselho a fazerem os deveres de casa, eles servirão para fixar o que aprenderam. Quaisqueres dúvidas, postem neste tópico.


    3.3 - Dever de casa


          Faça uma classe chamada "Calculadora". Nessa classe, deverá ter 4 métodos: somar, subtrair, multiplicar e dividir. Todos os métodos receberão dois números e realizarão os cálculos respectivos e, depois disso, mostrarão os resultados. Você deverá criar um objeto "Calculadora" após declarar a classe, e deverá testar todos os seus métodos.


    3.4 - Extra: erros comuns


    Esquecer de colocar o "end" ao terminar de definir uma classe

          Exemplo:


    classCalculadora   def algo   end

          Em vez de:


    classCalculadora   def algo   endend

    Esquecer de colocar o "end" ao terminar de definir um método

          Exemplo:


    def algo   fazer_algo

          Em vez de:


    def algo   fazer_algo end
    [center] :mrm: :mrm: :mrm: