Antes de começar este tópico quero esclarecer que TODAS as apêndices que
forem colocadas neste fórum só tem como finalidade referência, não
sendo de necessidade explicar ou detalhar seu conteúdo.
Na lição de hoje vamos criar nossa primeira classe.
Abra o RPGMaker Xp e crie um novo projeto. Chame-o como quiser. Abra o Editor de Scripts, e logo acima do Main,
insira uma sessão (botão direito -> Inserir). Nomeie-a como quiser. O
nome das sessões é irrelevante, pois o RGSS lê o seu conteúdo, não seus
nomes.
Na janela do Editor escreva isso:
ser escrito em minúsculas. Mais tarde veremos que o RGSS é
CASE-SENSITIVE (entraremos nos detalhes depois). Note também que estou
definindo nossa classe como filha de Window_Base.
Toda classe pré-inicializada possui como procedimento inicial o initialize. Então logo abaixo do class escreva isso:
Seu código deve estar assim:
Agora vamos usar o procedimento de criação da superclasse, usando a
palavra reservada super, e junto com ela os parâmetros necessários.
PARÂMETROS???
Sim, vamos ver a superclasse para entender isso:
Note que o initialize da classe Window_Base possui dentro dos parênteses
4 vars, separadas por virgulas. Essas vars são os parâmetros, atravéz
dos quais a classe cria a janela, usando seus valores logo abaixo nas
declarações self. A palavra self sempre é usada quando falamos do
próprio objeto, ou seja, relacionado a ele.
Agora que sabemos pra que servem os parâmetros aqui, vamos voltar para nossa janela.
logo abaixo do initialize escreva assim:
Eu peço que escreva e não copie e cole, para que você se habitue a escrever na janela do Editor.
Seu código deve estar assim:
Para podermos visualizar nossa janela, devemos agora fechar as declarações. TUDO que for declarado no RGSS, Módulos, Classes, Funções deve ser fechado com a palavra end. Como temos uma classe e um procedimento abertos, vamos fechá-los. Escreva no código assim:
Agora rode o game. É, eu também gosto do ícone da espada. Repare que
demos uma caminho de arquivo, no caso do bitmap basta dizer o caminho a
partir da pasta do projeto.
Até agora aprendemos que com a classe bitmap (Bitmap.new,
declaração de classe, correto?) comporta tanto texto quanto e imagens.
Ela também comporta os dois juntos, mas para isso, iremos precisar de
outra classe e um módulo. MÓDULO ??
Sim, um módulo é uma pré-definição, como a classe, porém ele não permite instâncias, você não declara @var = modulo.new como é feito com as classes, você chama MODULO::Procedimento. Os módulos serão estudados com mais ênfaze numa próxima lição, agora só veremos o necessário para o que precisamos.
A classe que vamos precisar é o Rect, que significa
retãngulo, a classe Rect cria uma área dentro do bitmap, onde podemos
"desenhar" qualquer coisa. Sua definição é:
Rect.new(x, y, largura, altura)
Então vamos lá. Retorne a linha bitmap para o que era antes, assim:
self.contents = Bitmap.new(width - 32, height - 32)
Logo abaixo dela escreva assim:
Código:
icone = RPG::Cache.icon("001-Weapon01")
rect = Rect.new(0, 0, icone.width, icone.height)
Acabamos de declarar duas variáveis, uma com a imagem do ícone,
onde usamos o módulo RPG::Cache e o procedimento icon, e o nome do
arquivo. A extensão do arquivo é desnecessária, o RGSS gera um erro se a
imagem não for suportada por ele.
A outra contém nosso rect, que é exatamente do tamanho da imagem carregada na var icone.
Agora usaremos mais uma função do self.contents, a função blt. A função blt vai desenhar dentro do rect a imagem que foi carregada na var icone, sua definição é essa:
blt(x, y, bitmap,rect[,opacidade])
Vamos lá. logo abaixo da declaração do rect, coloque isso:
Descomente a linha self.contents.draw_text(4, 0, self.width - 40, 32, "nome", 0) e troque o numero 4 por icone.width + 4.
Seu código deve estar assim:
Agora rode o game. Muito bom !!
CONCLUSÂO:
Começamos a ver hoje como criar uma janela, colocar texto e
figuras. Demos uma leve pincelada nos módulos e nas funções internas da
classe Window.
Eu quero alertar que a partir de agora tanto as lições quanto os
códigos começarão a ficar complexos, por isso, se você realmente tem
interesse em aprender, faça perguntas concisas, programar em RGSS é
muito fácil, mas depende principalmente de atenção e paciência.
Não jogue fora o projeto com o Exemplo da janela, ele será útil
na próxima lição, onde nos aprofundaremos nos procedimentos da classe,
gerando novos resultados e alterações na janela.
Eu farei uma apêndice destacando TODAS as funções das classes
Window e Bitmap, para maior facilidade nas próximas lições.
ruby brasil
forem colocadas neste fórum só tem como finalidade referência, não
sendo de necessidade explicar ou detalhar seu conteúdo.
Na lição de hoje vamos criar nossa primeira classe.
Abra o RPGMaker Xp e crie um novo projeto. Chame-o como quiser. Abra o Editor de Scripts, e logo acima do Main,
insira uma sessão (botão direito -> Inserir). Nomeie-a como quiser. O
nome das sessões é irrelevante, pois o RGSS lê o seu conteúdo, não seus
nomes.
Na janela do Editor escreva isso:
- Código:
class Window_Minha < Window_Base
ser escrito em minúsculas. Mais tarde veremos que o RGSS é
CASE-SENSITIVE (entraremos nos detalhes depois). Note também que estou
definindo nossa classe como filha de Window_Base.
Toda classe pré-inicializada possui como procedimento inicial o initialize. Então logo abaixo do class escreva isso:
- Código:
def initialize
Seu código deve estar assim:
- Código:
class Window_Minha < Window_Base
def initialize
Agora vamos usar o procedimento de criação da superclasse, usando a
palavra reservada super, e junto com ela os parâmetros necessários.
PARÂMETROS???
Sim, vamos ver a superclasse para entender isso:
Note que o initialize da classe Window_Base possui dentro dos parênteses
4 vars, separadas por virgulas. Essas vars são os parâmetros, atravéz
dos quais a classe cria a janela, usando seus valores logo abaixo nas
declarações self. A palavra self sempre é usada quando falamos do
próprio objeto, ou seja, relacionado a ele.
Agora que sabemos pra que servem os parâmetros aqui, vamos voltar para nossa janela.
logo abaixo do initialize escreva assim:
- Código:
super(32,32,120,64)
Eu peço que escreva e não copie e cole, para que você se habitue a escrever na janela do Editor.
Seu código deve estar assim:
- Código:
class Window_Minha < Window_Base
def initialize
super(32,32,120,64)
Para podermos visualizar nossa janela, devemos agora fechar as declarações. TUDO que for declarado no RGSS, Módulos, Classes, Funções deve ser fechado com a palavra end. Como temos uma classe e um procedimento abertos, vamos fechá-los. Escreva no código assim:
- Código:
class Window_Minha < Window_Base
def initialize
super(32,32,120,64)
end
end
Agora rode o game. É, eu também gosto do ícone da espada. Repare que
demos uma caminho de arquivo, no caso do bitmap basta dizer o caminho a
partir da pasta do projeto.
Até agora aprendemos que com a classe bitmap (Bitmap.new,
declaração de classe, correto?) comporta tanto texto quanto e imagens.
Ela também comporta os dois juntos, mas para isso, iremos precisar de
outra classe e um módulo. MÓDULO ??
Sim, um módulo é uma pré-definição, como a classe, porém ele não permite instâncias, você não declara @var = modulo.new como é feito com as classes, você chama MODULO::Procedimento. Os módulos serão estudados com mais ênfaze numa próxima lição, agora só veremos o necessário para o que precisamos.
A classe que vamos precisar é o Rect, que significa
retãngulo, a classe Rect cria uma área dentro do bitmap, onde podemos
"desenhar" qualquer coisa. Sua definição é:
Rect.new(x, y, largura, altura)
Então vamos lá. Retorne a linha bitmap para o que era antes, assim:
self.contents = Bitmap.new(width - 32, height - 32)
Logo abaixo dela escreva assim:
Código:
icone = RPG::Cache.icon("001-Weapon01")
rect = Rect.new(0, 0, icone.width, icone.height)
Acabamos de declarar duas variáveis, uma com a imagem do ícone,
onde usamos o módulo RPG::Cache e o procedimento icon, e o nome do
arquivo. A extensão do arquivo é desnecessária, o RGSS gera um erro se a
imagem não for suportada por ele.
A outra contém nosso rect, que é exatamente do tamanho da imagem carregada na var icone.
Agora usaremos mais uma função do self.contents, a função blt. A função blt vai desenhar dentro do rect a imagem que foi carregada na var icone, sua definição é essa:
blt(x, y, bitmap,rect[,opacidade])
Vamos lá. logo abaixo da declaração do rect, coloque isso:
- Código:
self.contents.blt(0, 0, icone, rect)
Descomente a linha self.contents.draw_text(4, 0, self.width - 40, 32, "nome", 0) e troque o numero 4 por icone.width + 4.
Seu código deve estar assim:
- Código:
class Window_Minha < Window_Base
def initialize
super(32,32,120,64)
self.contents = Bitmap.new(width - 32, height - 32)
icone = RPG::Cache.icon("001-Weapon01")
rect = Rect.new(0, 0, icone.width, icone.height)
self.contents.blt(0, 0, icone, rect)
self.contents.draw_text(icone.width + 4, 0, self.width - 40, 32, "nome", 0)
end
end
Agora rode o game. Muito bom !!
CONCLUSÂO:
Começamos a ver hoje como criar uma janela, colocar texto e
figuras. Demos uma leve pincelada nos módulos e nas funções internas da
classe Window.
Eu quero alertar que a partir de agora tanto as lições quanto os
códigos começarão a ficar complexos, por isso, se você realmente tem
interesse em aprender, faça perguntas concisas, programar em RGSS é
muito fácil, mas depende principalmente de atenção e paciência.
Não jogue fora o projeto com o Exemplo da janela, ele será útil
na próxima lição, onde nos aprofundaremos nos procedimentos da classe,
gerando novos resultados e alterações na janela.
Eu farei uma apêndice destacando TODAS as funções das classes
Window e Bitmap, para maior facilidade nas próximas lições.
ruby brasil