segunda-feira, 20 de outubro de 2008

A Window_Base

Para começar, toda Window herda metodos das windows: Command,Selectable ou Base. Segue a ordem: Window > Window_Base > Window_Selectable > Window_Command
A classe "Window" esta oculta no RGSS. A window_base serve para qualquer uso de windows, tanto para textos, imagens,etc, exceto comandos e seleçoes, por isso existe a Selectable para selecionar itens, como os scripts Scene_Item e Skill. E a Command, serve logicamente para criar comandos pelas janelas, como é o caso da Scene_Title, End e a janela de comandos do Menu.

Como diferenciar elas?
Simples, a Window_Base tem tudo, menos comandos e seleçoes, a Selectable geralmente tem muitas seleçoes, como é o caso dos itens, que são diversos, já a Command apresenta comandos especificos, por exemplo, voce cria a janela pelo código:
@var = Window_Command.new(largura,["comando1","..."])
Já as outras, geralmente são criadas por classe, mas podem ser criadas por variaveis (isso pode ser um pouco complexo, mas não é, basta saber usar argumentos).

Não vou comentar nas minhas aulas sobre a Selectable, pois não tem muito pra se falar.
Nesta vou começar falando da Base, mostrando os comandos. Vamos la!

Logo de cara, no inicio do script, voce ve o def initialize, e um codigo dentro dos parenteses, isso é chamado argumento, são codigos que precisam ser especificados quando chamamos uma classe. Entao deduzimos que para chamar a window_base precisamos especificar a posiçao X e Y e a largura e altura da janela.

Ha tambem comandos como 'self.', isto indica que a açao será feita na propria classe, neste caso a window. O exemplo: self.back_opacity = 200 indica que a opacidade da janela será 200. Uma pergunta, por que especificar com o self e não usando variaveis? Simples, porque se usassemos uma variavel, teriamos que usar em toda classe filha da base, o self indica que a açao ocorrerá com a classe em si, e não com a classe em um devido momento, visto que podemos usar a mesma window em várias scenes, como no caso a Window_Help.

Métodos

O metodo draw_icon e novo no VX, infelizmente no Xp não havia. Para desenhar um icone na window, basta usar: draw_icon(numero do icone, x, y). O numero do icone siginifica que voce deve especificar o icone, porque como vimos, o icone é uma imagem só, feita com vários icones, o RPG Maker automaticamente divide os icones, então teremos que contar o icone.

O metodo draw_face, tambem novo no VX, nao existe no XP, ele desenha uma face qualquer, desde que especificada: draw_face(face_name, face_index, x, y)
face_name indica o nome do arquivo, que deve ser expresso em aspas,face_index é o id da face, vide o numero do icone, e o X e Y nem precisa explicar.

O metodo draw_character desenha o grafico do personagem, draw_character(character_name, character_index, x, y). A mesma explicaçao do draw_face.

O metodo draw_actor_hp(actor, x, y) Desenha o grafico do HP do heroi, lembrando que a variavel actor deve ser especificada (eu nao sei como é no VX, mas no XP é: actor = $game_actors[id]).

O metodo draw_currency_value(value, x, y, width) serve para voce escrever o valor exato e atual de uma certa coisa, no caso é para Gold, veja que o Gold se refere a $game_party.gold

Por fim, há o mais conhecido, o draw_text, ele deve ser feito com o self.contents (por que eu nao sei :P): self.contents.draw_text(x, y, largura, altura,"texto")

Ha tambem o .opacity, que indica a transparencia da janela, podemos usar tanto o self como uma variavel.

Os derivados do .opacity são: .back_opacity, que conforme voce diminui/aumenta o numero, ele muda a opacidade do fundo da janela, e o .contents_opacity, que muda o conteudo da janela toda, exceto o grafico da janela (a janela em si, ou seja, so altera textos, imagens,etc).

OBS: self é um pseudo-variavel, voce não pode usar self em uma scene, porque não esta especificando qual janela voce quer alterar. Em uma scene, devemos usar o .opacity na variavel que retrata a janela.

O .z indica a prioridade, quanto maior, mais prioridade terá, por exemplo, se a janela A estiver com prioridade 5, e a B com 4, a janela A ficara em cima da B.

Um comando novo no RM VX, o .openness, ele varia de 0 a 255, onde 0 é a janela toda fechada, e 255, ela aberta, voce pode fazer uma animaçao usando este metodo, por exemplo, colocando 0 no def initialize, e 255 no update, isso faz com que ela comece fechada e abra rapidamente, um exemplo deste efeito é a janela de Title.

E por fim, o .visible = true/false indica que quando false, a janela não sera visivel, e quando true, será.

Bom, assim acaba a aula básica sobre os comandos de windows, vale lembra que eu apenas citei os comandos mais uteis e conhecidos, existem mais alguns, basta consultar o arquivo help do RM VX. Até a próxima aula sobre windows, que será sobre a Command!

0 comentários: