Anda di halaman 1dari 4

Ol pessoal, estou aqui para iniciar uma srie de aulas de RGSS.

Note que quando falo RGSS, no estou especificando qual, visto que todos os trs tm muita coisa em comum, tudo que fao num, posso fazer noutro, com pouqussimas excees. A grande diferena deles que cada verso utiliza um "sistema de classes" diferentes, ou seja, a forma a qual as classes so feitas. Por exemplo, no RGSS1 no h uma classe base para scenes, j presente no RGSS2, enquanto que neste no h classes gerenciadoras de procedimentos, presente no RGSS3. Bom, na primeira aula vamos ver um pouco de tudo. - Introduo Caso voc no saiba nada de linguagem de programao, saiba que RGSS a linguagem Ruby utilizada no RPG Maker. Um cdigo ou script um conjunto de instrues que o programa usa para transformar em "aes". Para fazer uma janela aparecer e sumir, utiliza-se eles. Saiba tambm que um script lido de cima para baixo e linearmente, ou seja, linha por linha, se houver um erro de programao numa linha e eventualmente causar um loop, a prxima linha no ser lida e executada. Antes de tudo saiba onde ver a lista de scripts. um cone de um papel com um lpis (RMVX Ace), porm em todas as verses pode-se abri-lo com a tecla F11. Outra informao importante o fato dos scripts serem lidos de cima para baixo, no, no uma repetio do que disse antes, me refiro ao fato do programa ler script por script de cima para baixo, isso significa que voc no pode por um script que faz referncia ou o modifica acima pois ele ainda no foi lido! Por exemplo, no d para por o script Scene_Menu acima de Scene_Base pois esse faz o uso de herana deste. - Comeando Primeiro vamos saber o que cada coias . O editor facilita nossas vidas dando cor a cada elemento da linguagem. Aqui vo as cores: Verde: Comentrio, no lido pelo interpretador, geralmente deixado como instrues. Azul: Palavras reservadas da linguagem, no podendo ser usadas como variveis. Azul claro: Operadores. Azul escuro: Classes ou mtodos. Roxo: Strings, basicamente textos. Preto: Identificadores. So os nomes das classes, variveis e mtodos. Vinho: Nmeros. Laranja: Smbolos. - As variveis As variveis so os elementos mais importantes do RGSS e de qualquer linguagem de programao. No quero complicar o conceito, mas entenda elas como uma folha de papel a qual pode ser escrita qualquer coisa. O seus valores podem ser de qualquer coisa, ou objeto, sendo especfico. A funo da varivel armazenar valores. Vamos a um breve exemplo. Abra o editor e logo acima do script Vocab, insira um novo script em branco. Nele escreva o seguinte cdigo: [code] msgbox "10" # Use print "10" no RGSS1 e RGSS2 exit

[/code] O cdigo acima faz com que seja exibida a mensagem de aviso com o texto 10. Ateno, voc pode tambm por 10 sem aspas, assim deixando de ser string e virando um nmero (Integer). Mas no indicado pois quando se trata de mensagens, deve-se usar textos (Strings). Note que msgbox e exit so mtodos, veremos eles mais adiante. Agora vamos usar uma varivel para armazenar o valor e depois exibir a mensagem com seu valor: [code] var = "10" msgbox var exit [/code] Na primeira linha ns declaramos a varivel, ou seja, criamos e damos um valor a ela, no caso uma string. Isso feito da seguinte forma: nome_da_varivel = valor Ateno, no se pode dar um nome a um identificador, no caso a varivel, com espaos, usa-se o "underline". Em seguida o operador igual e o valor. Veremos o valor a s eguir. - Os valores das variveis Um valor um objeto, tudo em Ruby objeto, ou seja, instncia de uma classe, para no complicar entenda que cada valor tem seus atributos, propriedades e mtodos . No posso usar o mtodo de dividir em uma string, mas posso us-lo em um nmero. Da mesma forma, no posso usar o mtodo de trocar um caractere numa string por outro num nmero. Aqui esto alguns valores: String: Textos, so delimitados pelo operador "" (aspas), devem ter comeo e fim, ou seja, "texto errado, pois todo o resto do script estar dentro da string. ex: "Texto" Nmero inteiro (Integer): So os nmeros inteiros, nada a acrescentar. ex: 50 Nmero decimais (Float): So os nmeros decimais separados por um ponto. ex: 10.69 Listas (Arrays): Tipo de variveis que armazena vrios valores em si. ex: [10,20,30,"oi",58.69] Boolean: Tem apenas dois valores, verdadeiro ou falso. ex: true, false Note que h vrios outros tipos, voc mesmo pode criar o seu, geralmente com o uso de classes. - Os tipos de variveis Agora vamos conhecer como as variveis so classificadas:

Locais: Variveis que s funcionam no escopo local. [code] var = "10" msgbox var def metodo var = "20" return var end msgbox metodo [/code] Veja que agora elas tm valores diferentes. Uma diferente da outra. Classe: Varivies que funcionam em toda classe ou num escopo de classe. [code] @var = "10" msgbox @var def metodo #var = "20" return @var end msgbox metodo [/code] Para tornar uma varivel de classe basta adicionar @ como prefixo. Globais: Variveis que funcionam em todo escopo de jogo. Um exemplo a varivel game_switches que uma lista. Pode-se us-la em qualquer script. Para torn-la global adiciona $ como prefixo. Faa um teste criando um evento e chame o script: [code] if $game_switches[1] == true msgbox "Switch ativada" else msgbox "Switch desativada" end [/code] - Exemplo Agora que sabemos identificar o que cada coisa, fica muito mais fcil de trabalhar . Vamos comear editando uma string, a do ttulo, especificamente. Para isso vamos ao script Scene_Title. Na linha 92: [code] def create_command_window @command_window = Window_TitleCommand.new @command_window.set_handler(:new_game, method(:command_new_game)) @command_window.set_handler(:continue, method(:command_continue)) @command_window.set_handler(:shutdown, method(:command_shutdown)) end [/code] Perceba a meno ao Window_TitleCommand, o .new indica a criao dele. Isso quer dizer q

ue ser criada esta classe, vamos ento ela. Na linha 34 h o seguinte trecho: [code] def make_command_list add_command(Vocab::new_game, :new_game) add_command(Vocab::continue, :continue, continue_enabled) add_command(Vocab::shutdown, :shutdown) end [/code] Perceba a sequncia "Vocab::_nome_", o Vocab um mdulo, voc pode confirmar isso ao v-l o no editor, ele o primeiro script. Logo de cara voc ver module Vocab. Um mdulo uma livraria onde se armazena variveis e mtodos, diferente das classes os mdulos so somente para leitura e consulta. O operador :: indica a consulta em si do mdulo, neste caso as variveis so new_game, continue e shutdown. Na linha 140 voc ver o seguinte trecho: [code] def self.new_game; def self.continue; def self.shutdown; [/code] command(18); end command(19); end command(20); end # Novo Jogo # Continuar # Sair

As linhas poderiam ser escritas da seguinte forma: [code] def self.new_game # Novo Jogo command(18) end # .... [/code] Voc deve estar confuso agora, vamos em breve veremos os mtodos. O importante agora notar este command(18), ele faz referncia a um texto especfico do Database, neste caso o de "Novo Jogo". Vamos alter-lo para "Novo Teste". Deixe assim essas linhas: [code] def self.new_game; def self.continue; def self.shutdown; [/code] "Novo Teste"; end command(19); end command(20); end # Novo Jogo # Continuar # Sair

D OK e teste o jogo. Viu que o nome na janela mudou? Isso aconteceu porque substituimos uma string por outra, um texto por outro, no poderamos substituir um texto por um nmero ou outra coisa! Agora faa um teste modificando tambm os comandos "Continuar" e "Sair".