segunda-feira, 22 de agosto de 2011
PROJETOS
ESSE PROJETO EU INICIEI ELE COM O INTUITO DE CRIAR UM JOGO NO QUAL TERIA O GRÁFICO COMO MINHA ESCOLA, ELE AINDA ESTÁ PRATICAMENTO APENAS COM O GRÁFICO E COM ALGUNS TELETRANSPORTES, ESTÁ COM POUCOS EVENTOS, MAS MESMO ASSIM ESTÁ BEM LEGAL, SEGUE O LINK PARA O DOWNLOAD!
Read more »
CURSO DE RGSS - AULA 3
Para criar-mos nosso 1º script, iremos utilizar a idéia de classe, vá até seu banco de scripts (crie um novo projeto) e adicione uma nova seção acima do main, vamos agora instanciar nossa classe!
Código:
class CalcPara criar uma classe usamos a palavra reservada class e logo após colocamos o nome para ela, como faremos uma calculadora, utilizaremos como nome Calc!Código:
def somaTemos agora nosso método de soma, precisamos agora especificar o que ele fará!Os comandos que utilizaremos serão bem simples: operações matemáticas e o comando print!
Código:
$game_variables[id]Onde id é o id da variável na database!Até agora temos:
Código:
class Calc
def somaVamos utilizar a variável 3 para ser o resultado e a 1 e 2 para ser as que serão operadas, assim temos:Código:
$game_variables[3] = $game_variables[1] + $game_variables[2]
p $game_variables[3].to_sPara finalizar nosso script colocamos um end no fim do método e outro no fim da classe
Pense, se eu colocasse
def soma
def subtração
...
O programa não conseguirir ler onde termina um método e começa outro, por isso utilizamos o comando end no fim de cada método, para as classes é o mesmo, sempre que terminamos uma classe, colocamos um end para que o interpretador saiba que a classe terminou ali!
Nosso script ficou então:
Código:
class Calc
def soma
$game_variables[3] = $game_variables[1] + $game_variables[2]
p $game_variables[3].to_s
end
endPara testar:Crie um evento em seu mapa, nele vá em chamar script. Assim como criamos objetos numéricos como a = 3, a vale 3, temos que criar objetos para as classes, então vou dizer que:
calculadora = Calc.new
Assim calculadora será um objeto do tipo Calc. O .new significa que estou criando um novo objeto Calc! Para executar os métodos basta chamá-los dentro do objeto que criamos.
calculadora.soma
Sempre utiliza-se classe.método, com isso temos no nosso chamar script:
Código:
calculadora = Calc.new
calculadora.somaExecute o jogo e fale com o NPC para ver o resultado. Mude o valor das variáveis 1 e 2 para testar!
CURSO DE RGSS - AULA 2
Antes de começarmos a parte prática, vamos estudar mais alguns conceitos importantes.
Dado: é a representação bruta de uma informação, pode ser um texto, um número, uma imagem...
Informação: é um conjunto de dados organizados que possuem uma significação.
ATENÇÃO o entendimento dos tipos de dados é crucial para entender o rgss, em caso de dúvidas, poste!
Como o nome ja diz, são números, porém existem tipos específicos, vou citar alguns:
int short double float long... (existentes em outras linguagens, em ruby só int e float)
geralmente esses nomes são relativos ao tamanho possível do número. Como assim? na matemática, os numeros são infinitos certo? Porém na informática a memória limita a quantidade de números possíveis, essa limitação é determinada pela quantidade de bits suportados, por exemplo, um número do tipo short tem 8bits, assim ele pode chegar até 255, se você estiver usando um short e ele chegar em 255, não da pra somar mais nada que da chash!
OK, chega de coisas complicadas, em RGSS, nos interessam apenas dois tipos de números, os "int" e os "float", a diferença é simples, int não tem vírgula e float tem!
O que isso provoca?
No RGSS sempre que eu digitar um número inteiro(sem vírgula=>em rgss a vírgula é o ponto, intão vo fala em ponto daqui em diante) esse número será um int, assim a divisão 5/2 dá 2 e sobra 1, se você quer que a divisão seja exata você usa 5/2.0 ou 5.0/2 e ai sai 2,5.
Os textos são todos do tipo String, tudo o que você ver em seus scripts entre "" ou '', é uma String (int, string e etc, são só nomes, acostumem-se com eles!)
Chegou a hora galera! Abram seus rmxp(s)! Criem um evento com trigger pressionar tecla, coloquem um gráfico só pra vcs saberem onde ele esta e vamos estudar os dados na prática!
1: O comando "print"
esse comando será muito utilizado por nós até a criação de nossa 1º Window, por isso temos que dominá-lo! No seu evento vá em chamar script e digite:
p "ola, este é o comando print. gostou?"
salve e entre no jogo, fale com o NPC que você criou, tem que aparecer uma tela com o que está entre "" no nosso comando, esse é o comando print! você coloca um p da um espaço e digita o conteúdo que você quer que apareça na tela, é provável que você ja tenha visto isso em algum script né!
2: As Strings!
Bom, como você ja sabe, strings são textos, assim, sinta-se à vontade para mudar o texto entre "", teste com vários textos de vários tamanhos, experimente também colocar o comando duas vezes como:
p "1"
p "2"
p "ai q saco isso!"
compreendido? ^^
3: Os "ints" e os "floats"
primeiro vamos criar um objeto! Nosso objeto será um número, para fazer tal coisa, apenas coloque o nome do objeto com o valor dele(obs para quem manja de programação: é claro que aqui estamos instanciando uma variável, mas vamos deixar estes detalhes técnicos para outra aula.), vamos chamar nosso objeto de a, eu quero que a tenha o valor 3, assim eu coloco:
a = 3 (pronto a vale 3, mas como posso saber que realmente funcionou?)
bom a resposta é! "p", ou seja, print. Escreva na linha abaixo do a = 3, um p a e teste.
Em geral, quando se mostram números na tela é necessário convertê-los em textos, o print não exige isso, mas para que todos se habituem desde ja para fazer Scenes, vou pedir que transformem para string os ints e floats.
*.to_s > o método to_s é um método que transforma qualquer número em string, assim eu posso fazer com que os dados numéricos que eu estou trabalhando possam ser colocados na tela como Strings.
Se você esta seguindo a aula corretamente, o seu "chamar script" deve estar:
a = 3
p a
pois bem, a é um inteiro, vamos transformá-lo em string, no comando print coloque a.to_s, salve, abra o jogo e fale com o NPC, agora apareceu o valor entre "", isso é por que ele foi transformado!
Bom, nosso "a" é um int certo (quando não tem ponto é sempre int), transforme ele em um float, ao invés de colocar a = 3, coloque a = 3.1, salve e vá no NPC denovo.
*.to_f & *.to_i > estes comandos são para transformar int em float e float em int respectivamente, vamos testá-los, no seu chamar script adicione uma nova linha entre o print e o a = ..., nela coloque a = a.to_i, é assim que mudamos o tipo de dado do nosso objeto(variável), teste esses comandos, note que mesmo que você tenha colocado algum número depois do ponto, sempre que você usar o to_i, só vai aparecer a parte inteira do número em questão!
Alguns exemplos:
a = 4.0000001
p a.to_s (lembre-se do "patos", vamos usar bastante ele)
(vai aparecer "4.0000001")
a = 4.0000001
a = a.to_i
p a.to_s
(vai aparecer "4")
a = 2
a = a.to_f
p a.to_s
(vai aparecer "2.0")
Seja criativo e explore essas conversões!
Agora vamos explorar junto da conversão de dados, as operações matemáticas.
Para começar, apague o código que você já fez (por via das dúvidas, sabe-se lá oq vc coloco!), coloque no lugar:
a = 1
p a.to_s
e vamos ao trabalho!
O comando "=": na programação o = significa que o que vem antes do igual deve ficar igual ao que vem depois, ou seja, quando eu coloco a = 1, significa que eu to mandando o "a" valer 1, esse conceito é muito importante, pois no rgss, o = é um comando como o + e o -!
Na nossa primeira soma, vamos fazer com o nosso 'a', coloque do lado de a = 1 um + 3, tem que ficar a = 1 + 3, salve e fale com o NPC, nosso print mostrou 4 na tela certo? Agora vamos subtrair, mude o + para o - e teste. Fácil não? Você pode fazer uma série de + e -, por exemplo 3 + 5 + 7 - 8, note que quando aparece na tela, só aparece o número sem pontos, tente colocar algum número com .0 por exemplo 2 + 4.0 - 5, no print vai aparecer com .0 porque se um dos números da operação é float, o 'a' vira float caso contrário ele será um int.
Vamos agora dividir e multiplicar, os símbolos são respectivamente / e *, assim vamos la! Insira agora no seu a = .. algumas multiplicações, inicie com poucas operações como:
a = 5 / 9 ou a = 3 * 4, note que nas divisões não aparecem os decimais, mesmo o cálculo não sendo exato, como você já deve saber, todo número sem . é int e não vai calcular os decimais, pra achar eles, faça com que algum dos números envolvidos no cálculo seja float.
Importante, como na matemática normal (convencional), as multiplicações e divisões são prioritárias em relação à soma e subtração, por exemplo a = 2 + 2 / 2, a resposta será 3, pois 2 + 2 / 2 > 2 + 1 > 3, por isso, assim como na matemática que estamos acostumados, podemos (e devemos) usar parênteses, mas lembre-se, sempre que abrir um parênteses tem que fechar ele:
a = ( 3 + 5 ) / 4 > correto
a = 3 + 5 ) / 4 ou ( 3 + 5 / 4 > errado!
esse erro é motivo de muitas falhas nos scripts! É importante salientar que programar é como escrever, se você escrever errado, o programa não funciona!
Você pode operar as variáveis sem mudar o seu valor, por exemplo, se eu tenho a minha variável 'a', e eu quero apenas somar 3, se eu não sei quanto a vale, não posso usar a = 'algo' + 3, uma alternativa é usar a = a + 3, porém não é muito usual,
vamos aprender da forma + prática, seu código deve ser:
a = 2
a += 3
p a.to_s
no nosso caso, nós sabemos quanto vale o 'a' ja no início, mas veremos mais a frente que nem sempre será assim, bom como vocês ja viram, para mexer (somar, subtrair...) um valor de uma variável basta usar <variável> <operação>= <valor>, vamos aos testes:
a = 3
a -= 4
p a.to_s
use as multiplicações e / com a mesma lógica, basta colocar o símbolo da operação antes do =
Suponha que além do 'a' eu tenha um 'b', é possível fazer operações com duas ou mais variáveis, a lógica é exatamente igual aos meios anteriores, vamos lá!
a = 3
b = 4
c = a + b
p c.to_s
note que eu usei uma 3º variável, pense bem, se eu colocasse a = a + b, o 'a' não valeria mais 3 e sim a soma de 3 com 4, por isso é normal usar uma variável extra que terá o valor das anteriores!
Obs.: se eu tenhu a e quero somar mesmo o b no a, basta colocar a += b, o funcionamento é o mesmo que no 2º meio

CURSO DE RGSS - AULA 1
É de extrema importância que antes de começar a criar/editar scripts, você tenha alguns conceitos básicos sobre programação orientada à objetos. É sobre isso que trataremos na nossa primeira aula, que será bem breve, mas muito importante.A linguagem RGSS é uma linguagem orientada à objetos, vamos assim ao nosso primeiro conceito.
Definição geral: São as entidades que compõem um programa. (no nosso caso, scripts)
Cada objeto é responsável por executar determinadas tarefas.
O conjunto de tarefas que um objeto realiza define seu comportamento.
Objetos são manipulados através de seus métodos.
Um método consiste de uma seqüência de instruções que acessam dados.
Quando se executa um método não é necessário conhecer seu conjunto de instruções. O importante é saber a tarefa que o método realiza.
Imagine um lápis, ele é o seu objeto, se o lápis é o objeto o que seriam os métodos? Escrever, apontar, por exemplo, a princípio você pode pensar que um objeto é como um lápis, uma cadeira, ou seja um objeto propriamente dito, já os métodos são instruções ou comandos do objeto, no caso do lápis, eu posso escrever ou posso apontar, esses são os métodos que o nosso lápis em questão disponibiliza.
Consideramos como estado o modo que o nosso objeto se encontra, ou seja, se a lâmpada está acesa o estado dela é 'acesa', daí tiramos que:
.
Atributos são características dos objetos, no caso da lâmpada, temos uma característica, o estado dela, se está acesa ou não, em objetos mais complexos temos mais atributos, por exemplo em uma caixa temos a largura a altura etc... (em um char do RGSS, temos hp, sp, str...)
Tipo danem-se as lâmpadas e as caixas, o que eu quero é RGSS
Bom menos enrolação e mais conteúdo, se você está se perguntando o que são essas coisas ou pra que servem, vamos a uns exemplos práticos...
Primeiro abra o seu editor de scripts, vamos analisar o que são objetos e quais são seus atributos e estados. Sempre que você encontrar class <alguma coisa>, esse alguma coisa é um objeto, veja que são muitos: Game_Character, Scene_Title, Spriteset_Map... Para os atributos, é bem fácil saber como identificá-los, basta procurar nomes com @ antes, todos eles são atributos, nos personagens temos, @hp, @sp, @maxhp, @str, @agi... E os estados? Um personagem pode estar morto não é? Isso pode ser considerado um estado (@hp == 0), mas não o único ^^. Não vou me aprofundar demasiadamente nessa parte pois isso nós aprendemos e compreendemos melhor com a prática! Após ler algumas aulas, voltem nesta e vejam como ficará mais claro!

Bom menos enrolação e mais conteúdo, se você está se perguntando o que são essas coisas ou pra que servem, vamos a uns exemplos práticos...
Primeiro abra o seu editor de scripts, vamos analisar o que são objetos e quais são seus atributos e estados. Sempre que você encontrar class <alguma coisa>, esse alguma coisa é um objeto, veja que são muitos: Game_Character, Scene_Title, Spriteset_Map... Para os atributos, é bem fácil saber como identificá-los, basta procurar nomes com @ antes, todos eles são atributos, nos personagens temos, @hp, @sp, @maxhp, @str, @agi... E os estados? Um personagem pode estar morto não é? Isso pode ser considerado um estado (@hp == 0), mas não o único ^^. Não vou me aprofundar demasiadamente nessa parte pois isso nós aprendemos e compreendemos melhor com a prática! Após ler algumas aulas, voltem nesta e vejam como ficará mais claro!

BEM VINDOS
Hoje é um dia muito especial para todos nós da equipe, pois hoje dia 22/08/2011 está sendo fundado a FAMILIA RPG MAKER, nosso site durante essa semana estará passando por algumas mudanças, então a partir de hoje ele já está livre para seu aproveito!Muito Obrigado Pela Atenção!
ATENÇÃO: ESTAMOS PRECISANDO DE MODERADORES PARA O SITE, INTERESSADOS ENTRAR EM CONTATO COM O EMAIL: familiarpgmaker@hotmail.com ou Marcelogalexandre1@hotmail.com - Te responderemos o mais tapido possivel!!
* Damos prioridades para as pessoas que entram regularmente na internet!
Read more »
ATENÇÃO: ESTAMOS PRECISANDO DE MODERADORES PARA O SITE, INTERESSADOS ENTRAR EM CONTATO COM O EMAIL: familiarpgmaker@hotmail.com ou Marcelogalexandre1@hotmail.com - Te responderemos o mais tapido possivel!!
* Damos prioridades para as pessoas que entram regularmente na internet!
Assinar:
Postagens (Atom)
Via E-mail
Twitter
Facebook