sábado, 13 de abril de 2013

Aprendendo RGSS do zero - Aula 07

Nesta aula vamos aprender um pouco sobre Windows, que são as janelas do jogo.
Uma Window é uma classe, logo toda janela é um objeto, elas são um ótimo exemplo de porque utilizar classes, visto que há dezenas de janelas, e como elas têm muito em comum, é viável usar o conceito de orientação a objeto.

- Introdução

Definimos uma janela assim:

class Window_Teste < Window_Base
end


A classe mãe é a Window_Base, herdamos todos os métodos dela.
Agora vamos utilizar o método de início.

class Window_Teste < Window_Base
  def initialize(x,y,w,h)
    super(x,y,w,h)
  end
end


O método initialize requer quatro argumentos, que são respectivamente posição x, posição y, largura e altura.

A palavra reservada super chama o método da classe mãe, nesse caso chamará o método initialize da classe Window_Base com os argumentos dados.

Crie um evento e chame o script

Window_Teste.new(10,10,200,200)

- Escrevendo textos

Agora vamos escrever um texto na nossa janela.

class Window_Teste < Window_Base
  def initialize(x,y,w,h)
    super(x,y,w,h)
    draw_text(0,0,140,30,"Hello World")
  end
end


Usa-se o método draw_text para escrever um texto. Os argumentos são os seguintes: posição x, posição y, largura do retângulo, altura do retângulo, texto

O retângulo é a área do texto.

Para fazer a janela ficar permanente e também ter interações utiliza-se as Scenes, conteúdo que veremos adiante.

- Mudando a cor

Para mudarmos a cor do texto, usa-se o método change_color

change_color(text_color(2))
change_color(Color.new(200,0,0))


O método text_color(n) retorna uma cor pré definida de acordo com a Windowskin, caso queira uma cor que não esteja disponível, use a classe Color e coloque os três argumentos RGB, de 0 a 255.

- Exemplo

Vamos colocar uma imagem na nossa janela.

class Window_Teste < Window_Base
  def initialize(x,y,w,h)
    super(x,y,w,h)
    bitmap = Cache.battler("Assassin",0)
    rect = Rect.new(0,0,bitmap.width,bitmap.height)
    contents.blt(0,0,bitmap,rect)
  end
end


Na quarta linha criamos uma Bitmap (classe das imagens e textos em geral) com o método battler do módulo Cache. O primeiro argumento é o nome do arquivo e o segundo a tonalidade.

Na quinta linha criamos um retângulo, que será a delimitação da imagem, a imagem fica dentro do retângulo. Os argumentos são os mesmos das janela, a diferença é que quando colocamos bitmap.width, bitmap.height não nos restrigimos a um valor número, o próprio programa se encarrega de pegar os valores.

Na sexta linha pegamos esse retângulo com a imagem e jogamos na janela. Os argumentos são posição x e y, imagem e o retângulo.

Você pode modificar os valores dos argumentos para entender melhor o que cada um faz.

Nenhum comentário:

Postar um comentário