Lua RPG Maker
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

RGSS3 - Introdução a Orientação a Objetos

5 participantes

Ir para baixo

RGSS3 - Introdução a Orientação a Objetos Empty RGSS3 - Introdução a Orientação a Objetos

Mensagem por Anderson Porto Sáb Dez 31, 2011 5:59 pm

ATENÇÃO: escrevi essa aula a alguns dias, é só um rascunho, mas queria iniciar 2012 com lançamento de materiais para a nova engine. Então, Feliz 2012, este é meu presente a vocês, depois, quando voltarmos a MrM, eu lanço essa aula na versão final, revisada e formatada, espero eu com mais aulas junto Wink

Introdução
Olá caros makers, cá estou eu novamente com minhas aulas de RGSS, mas agora é RGSS3! Oh sim, nossa nova engine, o RPG Maker Ace esta vindo com tudo e é nosso dever como pessoas ligadas à tecnologia, de nos atualizarmos! A princípio, eu pensei em utilizar as aulas ja existentes e dar uma mechida nelas para que ficassem compatíveis com o RGSS3, mas ai eu pensei "que porcaria é essa, reusar aulas de anos atraz!". Então não, não vou reutilizar nada e vou começar do 0. Minha principal motivação pelo não reuso é que muita gente esta esperando conteúdos novos meus, além de que muita gente já leu minhas aulas antigas e quer conteúdos novos, mas não é só isso, os anos passaram, quando escrevi minha 1ª aula, eu mal tinha iniciado a faculdade, hoje, recém formado como aluno número 1 da classe (eta como essa pessoa se exibe hahaha, mas pior que é verdade, ganhei prêmio e tudo mais kkk) enfim....espera-se que agora eu consiga criar aulas melhores e mais claras que as ultimas.

O Curso
Vou partir do pré-suposto que vocês não entendem uma linha se quer de código e assim, vou explicar tudo, mas dessa vez vou dar uma ênfase maior em questões da computação, caso fique muito complicado, leiam as primeiras aulas do curso de RGSS e depois iniciem aqui. Sempre postem suas dúvidas a vontade, em geral, eu meio que espero que outros makers as respondam, mas caso ninguém saiba, eu intervenho e respondo. Peço que não mandem nada via PM pois a dúvida de um, é a dúvida de vários e responder a 200 PMs iguais, por mais que eu me sinta feliz em ajudar, cansa!

O Que É Programação?
Programar é como educar, você educa o computador de modo a dizer exatamente o que ele deve fazer. Para tal, você deve escrever comandos, sim, você comanda o PC. Lembrem-se, computadores são burros, sem um programador, eles são apenas uma caixa inútil. Programar pode ser um tormento, mas também é uma arte, existem padrões, estilos e mais um monte de coisas envolvidas. Nunca, niguém domina tudo, esqueçam isso, nunca da pra saber tudo, você pode saber muito, mas tudo, never, esse é um mito que deve acabar já.
Programar exige esforço, você digita dezenas de linhas para um resultado ínfimo, mas é assim que é e todo o programador deve 1) enteder que vai se frustrar todo o tempo com códigos errados, 2) entender que deve apreciar as pequenas conquistas.

Programação e os Jogos
Dentro do mundo dos Jogos, os programadores, aqui descritos como scripters, são aqueles que dão vida ao jogo, não são aqueles que enchem a tela com imagens exuberantes, mas são aqueles que decidem quando essas imagens vão aparecer e como. Não somos animadores, nem designers, nem sonoplastas, mas pegamos tudo de todas as áreas e montamos em um produto só. Nosso trabalho é árduo e as coisas levam tempo, se você gosta de resultados rápidos, nem se dê ao trabalho de continuar com estas aulas.

OO
OO ou Orientação a Objetos é um paradigma de programação muito usado em tecnologias de alto nível. Ela permite o desenvolvimento de aplicações de grande porte com conceitos de encapsulamento, herança, polimorfismo e etc. (estudaremos todos eles) o nosso bom e velho Plug & Play. O RGSS3 é um framework que utiliza a linguagem Ruby. Outros autores poderão discordar de mim, mas daqui em diante, vou mencioar o RGSS3 como framework, pois não o considero uma linguagem no sentido literal do termo, não vou entrar aqui nesta questão, mas vou falar sobre isso mais a frente e explicar o porquê.

O conceito de objeto é muito abstrato dentro da programação, gosto de dar exemplos físicos. Se você pensar em um objeto, o que lhe vêm a cabeça? Um lápis, um caderno, o controle do seu ps3!? Pois bem, se você tivesse que programar essas coisas, provavelmente você teria o objeto lapis, o objeto caderno e por ai vai, mas você também teria funções para esses objetos da mesma forma que tem na vida real, como apontar, escrever, apertar o botão e afins. Tudo isso existe na informática, na verdade, toda a programação OO gira em torno de fazer essas coisas. Para poder executar esas funções, cada objeto precisa ter características, seria inútil ter um personagem na party sem ter HP, ou TP, ou ATK, todos esses números fazem com que o sistema de batalha possa usar aquele personagem, acessar aquelas funções.

Uma coisa muito importante da programação OO é o conceito de classe, uma classe é um tipo de objeto, por exemplo, eu tenho uma classe Lapis, todo objeto lápis é da classe lápis, mas cada lapis vai ter um tamanho, um grafite, uma cor, talvez um acessório e por ai vai, mas todos ainda serão da classe Lapis. Dentro desse esquema, existe um padrão muito interessante para dividir as classes, o RMVX implementa uma versão reduzida desse padrão, mas vou dar uma explicada no padrão completo para que vocês possam enxergar dentro dos códigos.

Modelo MVC
O modelo MVC é um padrão de programação em que dividimos todas as classes do sistema em 3 grandes grupos:

Model: modelos são as classes do exato modo como eu venho falando, uma classe Lápis, uma classe Actor, uma classe Enemy, ou seja, são as classes em seu sentido mais, digamos, puro, são classes que virão a se tornar objetos de extrema importancia. Classes do tipo model se caracterizam por ter muitos atributos (tamanho, cor, nome, idade....) e não terem praticamente nenhuma, ou nenhuma função mesmo, elas são classes simples, cruas e sem mistérios, na próxima aula vocês já deverão ser capazes de criar seus próprios models.

View - em uma palavra, Window, sim, as views são as classes de apresentação do sistema, são as classes das janelas, huds e qualquer outras coisas que aparecem na tela, em breve criaremos nossas próprias views para nossos games.

Controller - classes de controle são as classes que ficam entre as views e os models, elas são as classes que definem o comportamento das janelas utilizando os models, no RGSS3, elas são as scenes. Elas é que dizem que na Window_Gold (janela que exibe o dinheiro no menu) deve ser colocado o valor do dinheiro do player que esta no model Game_Party, no atributo gold, em que parte da janela que isso vai ser desenhado, é problema da view, mas o "oque", é a Scene quem cuida, assim como ela também cuida das ações que vão acontecer quando o jogador apertar enter em alguma opção de um menu e etc.

Linguagem Dinâmica
Todo o atributo de classe (tamanho, cor, nome...) tem um tipo de dado. O tipo é de crucial importância pois ele define como um atributo será salvo em arquivo ou na memória do computador, a escolha do tipo errado pode causar lag ou erros de sistema. Felizmente, o Ruby é uma linguagem dinâmica e por isso, essa não é uma preocupação de vocês, futuros scripters, mas seu conhecimento é importante pois utilizaremos sim algumas coisas. Existem dois tipos de linguagens dentro do paradigma OO, as tipadas (ou engessadas) e as dinâmicas. Em uma linguagem tipada, como por exemplo Java ou C#, nós precisamos especificar o tipo das variáveis, ex.:

C#
string meuTexto = "Olá"; //string é o nome do tipo texto
bool meuSwitch = false; //bool ou boolean é o nome das switchs, podem ser verdadeiras ou falsas

Java
String meuTexto = "Olá";
boolean meuSwitch = false;

Em linguagens dinâmicas, as variáveis podem assumir um ou mais tipos, esse é o caso do Ruby

meu_texto = "Olá"
meu_switch = false
Vejam que eu não preciso declarar o tipo, o Ruby faz isso pra mim. Uma coisa interessante aqui também é como nomeamos as variáveis, eu poderia escrever igual em Ruby, C# e Java, mas pela convenção, C# e Java não usa "_" e o segundo termo é em maiusculo, ja em Ruby, separamos as palavras por "_" e é tudo em minusculo.

Finalizando
Bom, acho que já escrevi d+ por hoje. Acho muito interessante que todos entendam bem o que foi dito e tirem as suas dúvidas pois esses conceitos vão ajudá-los a criar códigos de maior qualidade e funcionais evitando retrabalho nos seus scripts.


Exercícios
Não tem como ser scripter sem praticar, então, meus caros scripters aprendizes, respondam as seguintes perguntas! Postem aqui mesmo no tópico!


Qual a linguagem utilizada no RMVX Ace e em qual versão?

O que é Orientação a Objetos?

Cite duas classes de cada tipo dentro do modelo MVC presentes no framework RGSS3.

Crie 3 variáveis usando a linguagem Ruby, uma numérica, um booleano e uma string.

Anderson Porto

Mensagens : 92
Data de inscrição : 14/07/2010

Ir para o topo Ir para baixo

RGSS3 - Introdução a Orientação a Objetos Empty Re: RGSS3 - Introdução a Orientação a Objetos

Mensagem por Basch Sáb Dez 31, 2011 6:12 pm



Olha só, as tão esperadas aulas de RGSS3 do Anderson Porto!!!

Mal posso esperar para começar a programar nessa nova engine q é o RM Ace. Não terminei de ler seu tópico ainda, mas até agora estou entendendo. Adorei a sua iniciativa! Continue com essas aulas!
Basch
Basch

Mensagens : 51
Data de inscrição : 15/07/2010
Idade : 30
Localização : Lua do Rio de Janeiro

Ir para o topo Ir para baixo

RGSS3 - Introdução a Orientação a Objetos Empty Re: RGSS3 - Introdução a Orientação a Objetos

Mensagem por Drakonis Sáb Dez 31, 2011 6:14 pm

Começando a fazer antações e aprendendo antes da meia noite sobre rpg maker vx ace...
Facil até agora...
Drakonis
Drakonis

Mensagens : 182
Data de inscrição : 26/12/2011
Idade : 29
Localização : Itaquaquecetuba/Piratininga

Ir para o topo Ir para baixo

RGSS3 - Introdução a Orientação a Objetos Empty Re: RGSS3 - Introdução a Orientação a Objetos

Mensagem por Anderson Porto Sáb Dez 31, 2011 6:25 pm

q bom q estão gostando, depois vou aumentar a quantidade de questões dos exercícios e tb ja estou cheio de idéias para as próximas aulas *-*

Anderson Porto

Mensagens : 92
Data de inscrição : 14/07/2010

Ir para o topo Ir para baixo

RGSS3 - Introdução a Orientação a Objetos Empty Re: RGSS3 - Introdução a Orientação a Objetos

Mensagem por Drakonis Sáb Dez 31, 2011 6:30 pm

vixe pelo que estou vendo na próxima aula vou zerar lol!
Drakonis
Drakonis

Mensagens : 182
Data de inscrição : 26/12/2011
Idade : 29
Localização : Itaquaquecetuba/Piratininga

Ir para o topo Ir para baixo

RGSS3 - Introdução a Orientação a Objetos Empty Re: RGSS3 - Introdução a Orientação a Objetos

Mensagem por fbu Sáb Dez 31, 2011 8:20 pm

Belo material! Estou ancioso pelas próximas aulas. Bom 2012!
fbu
fbu

Mensagens : 29
Data de inscrição : 22/07/2010

Ir para o topo Ir para baixo

RGSS3 - Introdução a Orientação a Objetos Empty Re: RGSS3 - Introdução a Orientação a Objetos

Mensagem por didiAN Qui Jan 05, 2012 1:28 pm

boa aula! vc ai postar as proximas somente quando o MRM voltar?

didiAN

Mensagens : 5
Data de inscrição : 15/12/2011
Idade : 28
Localização : Guarulhos - SP

Ir para o topo Ir para baixo

RGSS3 - Introdução a Orientação a Objetos Empty Re: RGSS3 - Introdução a Orientação a Objetos

Mensagem por Anderson Porto Qui Jan 05, 2012 1:34 pm

naum necessariamente, vou postar conforme vou escrevendo, acabei naum fazendo outra essa semana, a 2ª ainda esta pela metade (ficou grande e confusa, tenho q dar uma arrumada, juntei coisa d+ em uma aula só), se der, amanha mexo nela ou então, só segunda, eu vou formatar elas só quando voltarmos para a MRM, isso sim Wink

Anderson Porto

Mensagens : 92
Data de inscrição : 14/07/2010

Ir para o topo Ir para baixo

RGSS3 - Introdução a Orientação a Objetos Empty Re: RGSS3 - Introdução a Orientação a Objetos

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos