a biblia do rgss - por jão e darkchocobo

Upload: markgeorgian

Post on 06-Jul-2015

991 views

Category:

Documents


0 download

TRANSCRIPT

IntroduoOl! Bem vindo a Bblia do RGSS! Aqui voc vai aprender muita coisa sobre a linguagem. Gostaria de agradecer a voc que mostrou interesse para aprender e baixou este tutorial, ele foi feito com muita vontade para que muitos makers possam aprender esta grande linguagem de progamao! Muitos sabem que h um tempo, o RGSS era uma linguagem que poucos dominavam, mas hoje as coisas mudaram, j existem muitos tutoriais sobre o assunto pela internet. Espero que este tutorial seja definitivo para sua aprendizagem, pois deu muito trabalho organizar os documentos para reuni-los aqui. Fique atento para a prxima atualizao! importante dizer que este tutorial comprometido para aqueles que tm uma noo mais avanada do RGSS, ou de nvel bsico-intermedirio, mas no impede que seja estudado por iniciantes. Um tutorial voltado aos que no sabem nada ser iniciado ainda. As pessoas que participaram deste documento so: Jo e DarkChocobo. Cada um cedeu seus materiais para que esta grande coletnea fosse feita. Desejo que isto sirva para voc aprender bem mais! Vale lembrar que este tutorial no est completo, pegamos tudo que havamos postado e juntamos, h certas aulas de classes que no precisam ser mostrados por serem pequenas e no to importantes, para ver todo o contedo restante do RGSS, s acessar o arquivo de ajuda j anexado.

Aula 1 Consideraes Iniciaisndice de Tpicos: Tpico 1 O que Ruby? Tpico 2 O que RGSS? Tpico 3 Sintaxe

Tpico 1 O que Ruby?Ruby uma linguagem de programao interpretada, com tipagem dinmica e forte, orientada a objetos com vastas semelhanas com Perl, SmallTalk e Python. Projetada tanto para a programao em grande escala quanto para codificao rpida, tem um suporte a orientao a objetos simples e prtico. A linguagem foi criada pelo japons Yukihiro Matsumoto, que aproveitou as melhores idias das outras linguagens da poca. Esta linguagem possui vastos repositrios de bibliotecas disponveis em sites como Ruby Forge e Ruby Application Archive (RAA). Existe, ainda, uma ferramenta bastante til para instalao de bibliotecas, chamada Ruby Gems, o software mais famoso desenvolvido em Ruby o Ruby on Rails

Tpico 2 O que RGSS?RGSS (Ruby Game Scripting System) uma biblioteca que usa a Linguagem de Script Ruby Orientada a objetos para desenvolver jogos 2D para a Plataforma Windows. RGSS leva voc a construir inteiramente sistemas de jogos com originalidade mais facilmente que outras linguagens. Ruby uma linguagem simples e de fcil aprendizado para os iniciantes, sendo esta uma poderosa e sofisticada ferramenta.

Tpico 3 SintaxeConsideraes Iniciais Ruby uma linguagem que diferencia letras maisculas das minsculas. Diferente de outras linguagens, em Ruby voc pode usar comentrios e espaos em qualquer local sempre que necessrio. Quebras de linhas (quando aperta enter) podem ser usadas como espaos desde que esteja claro que o comando ainda no acabou, seno, elas sero consideradas uma finalizao do comando. Identificadores Identificadores no Ruby podem ser comparados a Comandos dos Eventos, eles representam cada ao do script e fazem com que ele funcione. Identificadores so representados por qualquer palavra desde que comecem com uma letra ou um underline(_). Exemplo:Ruby__simples

Comentrios Todo e qualquer comentrio ser totalmente ignorado, fazendo com que sirvam apenas para orientao. Comentrios podem ser chamados de duas formas:

1 Desde que o primeiro dgito da linha seja um jogo da velha(#) toda a linha ser um comentrio. Exemplo:# Este um comentrio de linha.

2 - utilizado o comando =begin para representar o incio de um comentrio, e utilizado o comando =end para representar o fim do mesmo. Exemplo:=begin Este tipo de comentrio pode durar quantas linhas quiser. Ele muito utilizado para instruo de uso dos scripts. =end

OBS: O editor de scripts do RPG Maker XP e VX utiliza uma tonalidade verde de cor para representar comentrios. Palavras Reservadas As palavras reservadas no podem ser utilizadas para nomear classes, variveis, entre outros. Entretanto, variveis com prefixo $ ou @(sero vistos mais adiante) no so consideradas reservadas. As palavras reservadas esto listadas abaixo:BEGIN END alias and begin break case class def defined? do else elsif end ensure false for if in module next nil not or redo rescue retry return self super then true undef unless until when while yield

OBS: No necessrio decorar todas as palavras reservadas, pois elas iro aparecer no editor em uma tonalidade de cor diferenciada das demais.

Aula 2 As Variveis e Suas Funesndice de Tpicos: Tpico 1 O que so e para que servem as Variveis? Tpico 2 Os tipos de Variveis Tpico 3 Valores das Variveis Tpico 4 Trabalhando com as Variveis

Tpico 1 O que so e para que servem as Variveis?As variveis carregam dados necessrios para o funcionamento correto do jogo. As variveis podem ser consideradas containers de dados, elas ficaram guardando seus dados at que voc queira utiliz-los. Em Ruby, as variveis tm o mesmo propsito das variveis usadas pelos eventos do RPGMaker, guardar dados para que eles possam ser usados futuramente para um funcionamento correto do jogo, apesar de no serem usadas de mesma forma.

Tpico 2 Os Tipos de VariveisEm Ruby, existem vrios tipos diferentes de variveis, e qualquer uma dela pode ter vrios tipos de valores diferentes. Existem 4 tipos diferentes de variveis, so elas: Varivel Global, Varivel de Instncia, Varivel Local, e Constantes. Variveis Globais As variveis globais so aquelas que podero ser utilizadas por qualquer parte do programa (incluindo at mesmo pelos eventos). As variveis globais so identificadas por conter um prefixo $ em seu nome. Exemplo:$global_variable # Esta uma Varivel Global.

Variveis de Instncia As variveis de instncia pertencem a um especfico objeto , elas podem ser acessadas apenas pela classe a qual elas pertencem (classes sero vistas na prxima aula). As variveis de Instncia so identificadas por conter um prefixo @ em seu nome. Exemplo:@instance_variables # Esta uma Varivel de Instncia.

Variveis Locais As variveis locais so aquelas que podem ser usadas apenas no mtodo a qual ela pertence (mtodos sero vistos na prxima classe). As variveis locais no contm qualquer prefixo em seu nome, mas devem ser iniciadas por uma letra minscula ou um underline(_). Exemplo:local_variable # Esta uma varivel local.

Constantes Constantes so variveis que pertencem a classes, classes que incluem modules e modules (sero vistos em aulas futuras). Constantes so identificadas por comearem seu nome com uma letra maiscula.Constante # Esta uma Constante. CONSTANTE # Constantes tambm podem ter seu nome formado por letras maisculas.

Para chamar uma constante a partir de um objeto externo, utilize ::Module::Constante

OBS: Voc pode no ter entendido este exemplo, pois modules sero visto somente em aulas futuras.

Tpico 3 Valores das VariveisAs variveis podem ter vrios tipos diferentes de valores, cada tipo de varivel pode conter qualquer tipo de valor desejado. Os possveis tipos de valores que as variveis podem conter so: Valores Numricos, Strings, Expresses Regulares, Arrays, Hashes, Ranges, Smbolos e Pseudo-variveis. Valores Numricos Valores Numricos so aquelas variveis que representam nmeros, exatamente igual s variveis do RPG Maker, elas podem representar nmeros inteiros, decimais e at mesmo negativos. importante lembrar que as variveis do RPG Maker so alojadas numa varivel global pelo RGSS, por isso que possvel a mudana do valor das variveis atravs dos scripts, logo, tudo que o comando Alterar Variveis dos eventos faz mudar o valor de uma varivel global (algo que tambm poderia ser feito pelo comando Chamar Script, j que tudo que ele faz alterar o valor de uma varivel). Exemplo:0 16 -42 # Este um valor Numrico dado s variveis. # Este um valor Numrico dado s variveis. # Este um valor Numrico dado s variveis.

OBS: O Ruby ignora qualquer underline (_) que esteja no meio de um valor numrico, isso pode ser til para separar valores grandes, como no exemplo a seguir:1_000_000_000 1000000000 # Ambas as formas de escrever # resultaro em um valor de um bilho.

Strings Strings so nada mais, nada menos que textos (expresses literrias). As sctrings podem ser usadas colocando-se aspas ou aspas-duplas ( e ) entre o texto. Exemplo:Esta uma String Esta tambm uma string

A diferena de usar aspas ou aspas-duplas que as aspas-duplas pode ser utilizados cdigos dentro das strings, j textos em aspas comuns iro mostrar exatamente o que est dentro das aspas. Exemplo:sabor = doce. Suco #{valor} Suco #{sabor} Suco #{valor} Suco doce. # O programa ir interpretar desta maneira: # O programa ir interpretar desta maneira:

OBS: Em aulas futuras irei explicar o exemplo acima, s quis explicar que ao usar aspas-duplas, o Ruby interpreta um texto com comandos dentro. Quando dois Strings estiverem separados por um espao em branco, o Ruby interpretar como uma s string. Exemplo:Suco doce. Suco doce. # O programa ir interpretar desta maneira:

Expresses Regulares Qualquer texto representado dentro de barras ( / ) so consideradas Exprees Regulares. Em RGSS as exprees regulares no so muito utilizadas, por tanto irei explicar este tipo de valor somente em aulas futuras. Exemplo:/my name is dark chocobo/

Array Array um tipo de valor muito intereante, pois ela em si no tem qualquer valor, na verdade as Array servem para guardar vrios valores em uma nica varivel, incluindo outras Arrays. As Arrays podem guardar uma quantidade ilimitada de valores em uma nica varivel, colocando estes valores numa ordem especfica destro de chaves, cada valor separado por uma vrgula. OBS: importante lembrar, que cada valor da array pode conter qualquer tipo diferente de valor, incluindo outras Arrays. Exemplo:[[0, 16, -42] [Esta uma String, Esta tambm uma string, Suco doce.] [16, Suco doce., -42, 1_000_000_000] # Todas estas acima so Arrays. # Note como cada valor separado por vrgula independente do tipo de valor.

Como os valores da Array ficam em grupo, cada um deles tem um ID ( o nmero de sua ordem na lista, comeando do 0) Exemplo:[0, 16, -42] # Nesta Array, 0 (zero) tem ID 0, pois o primeiro da lista.

# 16 tem ID 1, pois o segundo. # -42 tem ID 2, pois o terceiro. # Agora vamos para uma outra Array: [16, Suco doce., -42, 1_000_000_000] # Nesta Array, 16 tem ID 0, pois o primeiro da lista. # Suco doce. tem ID 1 # -42 tem ID 2 # 1_000_000_000 tem ID 3

Exemplo:[4, [0, 16, -42], Suco doce., 1_000_000_000] # Preste bem ateno no valor de ID 1 desta Array. # O valor de ID 1 : [0, 16, -42] # uma Array dentro da prpria Array. # Neste caso ela funcionar do mesmo jeito, sem qualquer problema.

OBS: Note que, como as Arrays no tm limite de tamanho, uma Array pode conter quantas Arrays voc quiser dentro dela, e estas Arrays podem, por sua vez, ter outras Arrays dentro de si e assim por diante (apesar de isso no ser nem um pouquinho comum de encontrar) Nota Final: Ainda h mais o que falar sobre Arrays, mas para entende-la melhor devemos primeiro concluir nossos estudos sobre variveis, por tanto, vamos adiante. Hash Hashes so muito parecidas com as Arrays pelo fato delas tambm guardarem vrios valores dentro de si, porm, as Hashes, diferente das Arrays, to tm uma ordem fixa por IDs, Porm as Hashes so mais complexas de serem compreendidas, ento vamos passar para o prximo valor e explicarei hashes em aulas futuras. Range Range so operadores utilizados entre dois valores para determinar um novo valor que seria todos os valores entre os dois valores determinados. Simplificando, uma range todo o valor entre um incio e um fim especificado. Uma range identificado por reticncias (...) ou dois pontos finais (..), no caso da reticncias, a range ter o valor inicial at o final, mas nos dois pontos duplos a range ter o valor somente dos valores entre os dois especificados. (Eu sei que est meio difcil para entender, mas tudo ficar mais simples aps o exemplo) Exemplo:1 .. 20 1 ... 20 # Neste caso, a range ter todo o valor de 1 20 # Neste caso, a range ter o valor ENTRE 1 e 20 (de 2 19)

OBS: As ranges no so usadas como as outras variveis comuns, so criadas especificamente para o comando for do Ruby. (Este, ser explicado no prximo tpico desta aula.) Smbolos Smbolos so o nico tipo de valor com que vocs no devem ter qualquer tipo de preocupao, eles so instncias de uma classe interna do RGSS e so os nicos objetos (do RGSS) que iro voltar exatamente da forma que so sempre que forem chamados.

Exemplo::class :lvar :method :$gvar :@ivar :+

Pseudo-Variveis Diferentes dos valores vistos acima, estes so valores especiais conhecidas como Pseudo-Variveis. Pseudo-Variveis no podem ser alteradas. As Pseudo-Variveis so: self, nil, true e false. Self Self o prprio objeto, exemplo: as variveis tambm podem representar classes (mas isso ser visto na prxima aula), ento quando voc escreve self dentro desta classe, est se referindo varivel que est representando esta classe. No irei me aprofundar neste tipo de valor, pois para isso, primeiro voc deve saber sobre classes, que s sero dadas na prxima aula. Nil Sempre que uma varivel no declarada for chamada, ela ser considerada Nil, logo, nil pode ser considerado como um NADA, como se a varivel no tivesse nenhum valor (nem zero). True/False So valores especiais que significam Verdadeiro (true) ou Falso (false), so usados em ocasies especiais, como em condies para definir coisas como, por exemplo, se uma janela de comando estiver ativa ou no. Estes valores so utilizados em uma varivel global para representar as Switches do RPG Maker (true = ON, false = OFF), logo, tudo que o comando Alterar Switches dos eventos faz eh alterar o valor de uma varivel global de true para false(e vice-versa) do mesmo jeito que o comando Alterar Variveis j citado acima.

Tpico 4 Trabalhando com as VariveisComo voc j sabe, as variveis servem para alojar valores de diversas formas, esta parte da aula, lhe ensinar como criar as variveis e alterar seus valores. As variveis representam valores que podemos armazenar para us-los em todas as coisas. Para atribuir propriedades, condies, etc. Antes de mais nada devemos declarar uma varivel. Declarar, em Ruby, uma expreo dada quando eu crio uma Varivel. Para criar uma Varivel simplesmente equaliza-a a um valor desejado, voc pode dar qualquer nome e qualquer valor a Varivel que estiver criando, ds de que siga as regras citadas para cada tipo de varivel no comeo da aula. Exemplo:varivel = 5

Com isso, eu acabo de criar uma varivel local com nome de varivel, e seu valor 5. Que tal comear a colocar as aulas em prtica? Crie um novo script em seu jogo acima de todos os outros scripts, e cole o cdigo j dito acima (varivel = 5). Na linha abaixo coloque o comando:p varivel

O comando p, criar uma janela padro do Windows no jogo (que aparecer logo ao iniciar o jogo, pois est no primeiro script) exibindo o valor de varivel. Ento d OK no editor e teste o jogo, veja como apareceu o valor citado na varivel 5. Agora apague o p varivel, vamos criar uma nova varivel. Coloque o seguinte cdigo:teste = varivel + 2 p teste

Agora d um teste no jogo. Apareceu o nmero 6, pois se varivel tem o valor de 5, e teste = varivel + 2, ento teste = 7. simplesmente uma equao matemtica de primeiro grau. Agora, apague o ltimo cdigo citado, vamos alterar o valor de varivel sem precisar criar uma segunda varivel. Logo abaixo de varivel = 5, coloque:varivel += 2

Com isso, o valor de varivel, ser adicionado em 2, este comando tambm pode ser substitudo por varivel = varivel + 2, pois em Ruby existe sempre vrias formas de fazer cada coisa que voc quiser, apenas optamos pelo caminho mais simples e curto. Abaixo segue uma lista dos comandos matemticos que o Ruby consegue ler:+, -, *, /, %, **, &, |, ^, , &&, ||

OBS: Em outras aulas sero explicados o significado de cada operador, por hora, somente os que realmente importam so: +, -, * e /; que representam respectivamente: soma, subtrao, multiplicao e diviso. Condies As condies do Ruby so geralmente usas juntamente com variveis de todos os tipos. As condies do Ruby so utilizadas da mesma forma que as condies dos eventos do RPG Maker, porm com mais especificaes e possibilidades. Em Ruby existem quatro formas diferentes de criar condies, so elas: Condio Completa, Condio de uma Linha, Condio Rpida e Condio de um Comando. OBS: Na verdade, as quatro formas de condies no tm nomes especficos, mas fica mais fcil ensinar, dando um nome a cada uma. Condio Completa: a mais simples de fazer, e mais comum, apesar de ser a maior. Ela consiste no uso da palavra if no comeo da estrutura, e logo depois da condio. Exemplo:if varivel == 5 p sim end

Agora vamos explicar o significado desta expreo: Na primeira linha, a palavra if representa o incio de uma condio, e varivel == 5 representa a condio dada para que a prxima linha acontea, note que utilizado dois = j que uma condio, pelo contrrio, o programa iria pensar que voc estava querendo mudar o valor de varivel para 5. A segunda linha o que ir acontecer no caso de varivel ser 5, no caso, ir aparecer uma janela padro do Windows com a mensagem sim. A palavra end, na terceira linha, representa o final da estrutura, caso a condio de varivel ser 5, no seja cumprida (se varivel no for 5) o programa ir pular a linha p sim e ir direto para o end, que o final da estrutura. Cole isto logo abaixo daquele antigo comando varivel = 5 e d um teste para ver o que acontece. Agora mude o varivel = 5 para varivel = 3 e d um teste. Como varivel no 5, o programa no mostrou a mensagem sim, pois a condio de varivel ser 5 no foi cumprida. Agora apague a condio criada (o ltimo cdigo citado) e cole esta nova condio abaixo:if varivel == 5 p sim else p no end

Agora altere o valor de varivel para 5 e teste, depois para outro valor que no seja 5, e teste. else uma palavra usada para representar uma exceo condio da estrutura. Agora retire o else e coloque no lugar isto: elsif varivel == 3. Agora voc est disendo ao programa que se varivel for 5, a mensagem ser sim, mas se for 3, a mensagem ser no. Porm, como voc no especificou uma exceo para suas duas condies, o programa pular direto pro end no caso de varivel no for 3, nem 5. Voc pode usar quantos elsif voc quiser por exceo, mas else, somente um, ou nenhum; e ser sempre obrigatrio um end em casa condio. Voc tambm pode dar mais do que uma condio por estrutura com as palavras and e or. Exemplo:if varivel == 5 or varivel == 3 p sim end

Neste caso, se varivel for 5 ou 3, a mensagem sim ser exibida. Exemplo:if varivel == 5 and teste == 3 p sim end

Neste caso eu usei duas variveis para a condio, a mensagem sim ser exibida se varivel for 5, e teste for 3. Lembre-se de que voc deve sempre declarar a varivel antes de us-la (teste = 3), caso contrrio acontecer um erro, pois o programa no conseguir encontrar a varivel. Voc pode tambm utilizar outros comandos ao invs de ==, os mais comuns e usados esto listados abaixo:

== > < >= < >= 1. OBS: Note que voc no pode utilizar os operadores >, e