Forums » RGSS

Aula 1: Escrevendo textos e variáveis em uma janela

    • 683 posts
    4 de junho de 2015 13h29min05s ART

    Inrodução

     

    Eae, galera, esta é a minha primeira aula. Você ne, prescisa saber muito de scripts para ler esta aula, mas ajuda se ja souber um pouco. Hoje vamos aprender a criar janelas, isto é, aqueles retânguls com a windoskin, que tem textos, imagens, etc.. abra o menu do seu jogo e vai ver muitas windows.
    Os objetivos principais da aula serão:
    [x] Criando uma Janela
    [x] Inserindo textos
    [x] Inserindo variáveis

     

    Spoiler Parte 1: Criando uma janela 

    Parte 1: Criando uma janela.


    Para começar, vamos criar uma classe e usar o comando "[nome da classe] < Window_Base", sem as aspas. Sendo assim:

    classWindow_Tutorial<Window_Base
    As janelas filhas de Window_Base geralmente usam dois "def", sendo o primeiro quase sempre initialize e o segundo refresh.
    Depois de criar a def initialize, vamos botar os primeiros comandos nela.

    [x] O comando "super" vai criar nossa janela.
    Sendo super(x, y, l, a), ou seja Coordenadas (X, Y) Tamanho (largura,  altura), criamos a nossa janela com:

    classWindow_Tutorial<Window_Base   def initialize     super(0,0,200,200)
    Talvez você não saiba, mas todas as windows tem uma borda. Vamos prescisar criá-la com o comando "self.contents = Bitmap.new(width - 32, height - 32)", assim fizemos uma borda de 32 pixels. 
    Depois, disso o comando "refresh" vai chamar a nossa próxima def. Então, seu script deve estar assim:

    classWindow_Tutorial<Window_Base   def initialize     super(0,0,200,200)     self.contents =Bitmap.new(width -32, height -32)     refresh   end  

     

    Spoiler Parte 2: Inserindo textos 

    Parte 2: Inserindo textos.


    Vamos criar a def "refresh", que foi chamada com o comando 'refresh', que está na nossa 5ª linha. Nesta def nós vamos escrever textos, variáveis, imagens, etc..
    Mas antes de escrever qualquer texto, ou outro, devemos limpar a janela. Assim, cada vez que ela for atualizada seu conteúdo será apagado, e não ficará um em cima do outro. Para isso usaremos o comando "self.contents.clear".
    Seu script deve estar assim:

    classWindow_Tutorial<Window_Base   def initialize     super(0,0,200,200)     self.contents =Bitmap.new(width -32, height -32)     refresh   end   def refresh     self.contents.clear
    Agora finalmente faremos um texto!
    Para inserir um texto, devemos seguir algumas regras:
    "self.contents.draw_text(x, y, l, a, "texto")"

    x = coordenada X do texto
    y = coordenada Y do texto
    l = largura
    a = altura
    "texto" = texto á ser escrito, entre aspas.

    Para quem não entendeu, se eu quisesse escrever "teste", usaria o seguinte comando:
    self.contents.draw_text(0, 0, 256, 32, "teste").
    Substitúa "teste" pelo texto desejado e deixe seu script assim:

    classWindow_Tutorial<Window_Base   def initialize     super(0,0,200,200)     self.contents =Bitmap.new(width -32, height -32)     refresh   end   def refresh     self.contents.clear     self.contents.draw_text(0,0,256,32,"Seu texto aqui.")
    Considerações:
    [x] Você pode usar varias linhas de texto, é só botar um comando embaixo do outro e mudar as coordenadas.
    [x] Para pular uma linha para baixo, aumene a coordenada y em 25.

     

    Spoiler Parte 3: Inserindo variáveis 

    Parte 3: Inserindo Variáveis.


    Para começar esta parte da aula, sugiro que use esse script:

    classWindow_Tutorial<Window_Base   def initialize     super(0,0,200,200)     self.contents =Bitmap.new(width -32, height -32)     refresh   end   def refresh     self.contents.clear     self.contents.draw_text(0,0,256,32,"Hp do heroi:")     self.contents.draw_text(0,25,256,32,"Mp do heroi:")
    O script assim é melhor porque vamos acresentar variáveis com o Hp e o MP do heroi.
    Bom, vamos começar. Nesta parte da aula, vamos voltar á def initialize, e logo antes do comando "refresh", vamos usar dois comandos:

    a) $hp = $game_actors[1].hp
    b) $sp = $game_actors[1].sp

    Tradução:
    a) A variável com o nome de "hp" é igual ao hp do personagem número 1.
    b) A variável com o nome de "sp" é igual ao sp do personagem número 1.

    Então, seu script deve estar assim:

    classWindow_Tutorial<Window_Base   def initialize     super(0,0,200,200)     self.contents =Bitmap.new(width -32, height -32)     $hp = $game_actors[1].hp     $sp = $game_actors[1].sp     refresh   end   def refresh     self.contents.clear     self.contents.draw_text(0,0,256,32,"Hp do heroi:")     self.contents.draw_text(0,25,256,32,"Mp do heroi:")
    Tudo o que temos que fazer agora é mudar o texto a ser exibido, para que ele mostre as variáveis.
    Usaremos o método .to_s para escrever variáveis. E sempre que queremos escrever textos e variáveis juntos, devemos separa por um "+". Então, nossas mensagns devem ser:

    classWindow_Tutorial<Window_Base   def initialize     super(0,0,200,200)     self.contents =Bitmap.new(width -32, height -32)     $hp = $game_actors[1].hp     $sp = $game_actors[1].sp     refresh   end   def refresh     self.contents.clear     self.contents.draw_text(0,0,256,32,"Hp do heroi:"+ $hp.to_s)     self.contents.draw_text(0,25,256,32,"Mp do heroi:"+ $sp.to_s)   endend



    Para usar o script, crie um evento, depois use "chamar script", e ponha o código:

    $window =Window_Tutorial.new