Lição 3 - Nossa primeira Classe - Uma Janela Hitskin_logo Hitskin.com

Isto é uma pré-visualização de um tema em Hitskin.com
Instalar o temaVoltar para a ficha do tema

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

Lição 3 - Nossa primeira Classe - Uma Janela

+2
loganout
Nothing
6 participantes

Ir para baixo

Lição 3 - Nossa primeira Classe - Uma Janela Empty Lição 3 - Nossa primeira Classe - Uma Janela

Mensagem por Nothing Qua Jan 05, 2011 8:06 am

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:
Código:
class Window_Minha < Window_Base
Note que a palavras class está em minúsculas. TODO e qualquer código escrito no RGSS que se refira a funções, classes, módulos DEVE
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:
Lição 3 - Nossa primeira Classe - Uma Janela Image007
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

Nothing
Iniciante
Iniciante

Mensagens : 43
Créditos : 8

Ir para o topo Ir para baixo

Lição 3 - Nossa primeira Classe - Uma Janela Empty Re: Lição 3 - Nossa primeira Classe - Uma Janela

Mensagem por loganout Sex Set 02, 2011 10:09 am

Não aconteceu nada Fury

e o tutorial está incompleto, Acho q quem o colocou nem mesmo o leu Very Happy nas próximas aulas fala de coisas que vcê nem explicou anteriormente... fica difícil...

Por favor reveja suas aulas, está faltando explicação nessa e mais a frente fala de NPC colocar codigo não sei aonde, não sei pra que, pq vc tbm não citou em nenhuma aula passado sobre esse tal de NPC

flw!!!

loganout
Novato
Novato

Mensagens : 22
Créditos : 0

Ir para o topo Ir para baixo

Lição 3 - Nossa primeira Classe - Uma Janela Empty Re: Lição 3 - Nossa primeira Classe - Uma Janela

Mensagem por Hatsuki Morturo Ter Set 27, 2011 12:57 pm

Na verdade não, ele falou que iria ensinar a criar uma janela, e ensinou, a janele está lá, mas quem deseja por algum outro conteúdo dentro, deve pesquisar um pouquinho até achar como por. Pois essa janela ai só tem a imagem de uma espada se não me engano.

_________________
Lição 3 - Nossa primeira Classe - Uma Janela Asd10

Lição 3 - Nossa primeira Classe - Uma Janela Fabar10
Hatsuki Morturo
Hatsuki Morturo
Experiente
Experiente

Mensagens : 401
Créditos : 50

Ir para o topo Ir para baixo

Lição 3 - Nossa primeira Classe - Uma Janela Empty Re: Lição 3 - Nossa primeira Classe - Uma Janela

Mensagem por wallace123 Qua Set 28, 2011 2:23 am

Podem me ajudar eu não vi onde ficou a janela Successful

EDIT : Essas lições me ajudaram muito até aprendi a modificar golds iniciais Successful (o coisa besta (porém pra min era muito dificil kkk ))
wallace123
wallace123
Aldeia Friend
Aldeia Friend

Medalhas : Lição 3 - Nossa primeira Classe - Uma Janela 94JxvLição 3 - Nossa primeira Classe - Uma Janela ICU4UuCrHDm5ALição 3 - Nossa primeira Classe - Uma Janela Ibnth6gSDk98m7Lição 3 - Nossa primeira Classe - Uma Janela ZgLkiRU
Mensagens : 1161
Créditos : 38

Ir para o topo Ir para baixo

Lição 3 - Nossa primeira Classe - Uma Janela Empty Re: Lição 3 - Nossa primeira Classe - Uma Janela

Mensagem por Nanzin Qua Set 28, 2011 8:24 am

cara, se era pra vce dar aula que desse direito, voce deveria tambem adicionar explicaao sobre a scene
que ja imenda com Windows direto1;

a scene seria que iria chamar a janela e ja a deixar no mapa, coisa que ai voce nao fez!;

@loganout > cara paa voce chamar ajanela tera de ser manualmente crie um evento va na 3 aba e clique em chamar script digite isso Window_Minha.new
ve se janela vai abrir!;

braços

_________________
Lição 3 - Nossa primeira Classe - Uma Janela Npvo

Para Aqueles que gostam de Min e de meu Trabalho;
Upem Meu Pet nao custa nda!!


Pet:
Nanzin
Nanzin
Membro de Honra
Membro de Honra

Mensagens : 1550
Créditos : 252

Ir para o topo Ir para baixo

Lição 3 - Nossa primeira Classe - Uma Janela Empty Re: Lição 3 - Nossa primeira Classe - Uma Janela

Mensagem por Guilherme maker 2 Qua Jan 18, 2012 5:17 pm

Nanzin escreveu:cara, se era pra vce dar aula que desse direito, voce deveria tambem adicionar explicaao sobre a scene
que ja imenda com Windows direto1;

a scene seria que iria chamar a janela e ja a deixar no mapa, coisa que ai voce nao fez!;

@loganout > cara paa voce chamar ajanela tera de ser manualmente crie um evento va na 3 aba e clique em chamar script digite isso Window_Minha.new
ve se janela vai abrir!;
braços

cara ajudou muito
Guilherme maker 2
Guilherme maker 2
Novato
Novato

Mensagens : 25
Créditos : 4

Ir para o topo Ir para baixo

Lição 3 - Nossa primeira Classe - Uma Janela Empty Re: Lição 3 - Nossa primeira Classe - Uma Janela

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