[Tutorial] Criando um Pause Personalizado

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

[Tutorial] Criando um Pause Personalizado

Mensagem por dharrison em Sex 19 Nov 2010, 21:58

Objetivo: Criar um Pause com um draw_text, ou com um draw_sprite. Introdução aos comandos para criar Caixas de Texto atravéz de draw.
Dificuldade: Fácil
Ferramenta: GM7 PRO

Nesse tuto criaremos um simples pause, mas com o sprite que quisermos lol!
E também você conhecerá os comandos que usaremos no meu próximo Tutorial, sobre criar Caixas de Texto/Diálogos com um script de draw.


MATERIAL:

Nomeie o Sprite de s_pause.
Um sprite de pause. Eu estou usando esse no jogo que estou desenvolvendo:

(Para o Pause ficar bonitinho no jogo, apenas centralize a Origin no meio do Triangulo)

Spoiler:
Sim, é um jogo fan-game do Zelda.
Nesse jogo você será Elkin, um estrangeiro que chega em Hyrule para combater o mal até a chegada do Heroi do Tempo (Link).
To desenvolvendo a engine, conforme for aprendendo coisas novas nela, postarei.


MODO DE PREPARO:

Crie um Obj chamado obj_pause, coloque nele um Evento Key Press (Enter), dentro coloque um Piece of Code com o seguinte código.
Código:
{
scr_pause()
}


Versão com Sprite:
Agora crie um Script, nomei-o scr_pause e coloque dentro dele:
Código:
{
    draw_sprite(s_pause,0,320,240) //Desenhar_Sprite(s_pause,subimagem 0, x=320pxl, y=240pxl) - Desenha o Pause no meio da tela.
  screen_refresh(); //Redesenha a tela usando a imagem atual da room, ou seja, "congela a tela".
  keyboard_wait(); //Faz o jogo esperar até que o jogador clique em alguma tecla. Abaixo declaramos qual tecla deve ser pressionada.
{
  if (keyboard_lastkey == vk_enter) //Se a ultima tecla que foi usada (enter), ser apertada novamente...
  {
  io_clear(); //Limpa os estados do Teclado e Mouse, é esse comando que irá fazer o jogo 'descongelar'
  }
  else
  {
  scr_pause(); //SE NÃO aperta Enter dinovo, o script continua sendo executado. Assim o jogo continua pausado.
  }
}
}

A Explicação está toda no proprio código, qualquer dúvida dá um berro Very Happy.


Versão só com Draw:
Primeiro crie uma Font, e chame-a fontpause. Escolha um tamanho bem grande e uma fonte legal.
Código:

{
  draw_set_color(c_white) //Configura a cor do Draw para Branco
  draw_rectangle(240,220,400,280,false) //Desenha o retangulo, onde: x1 (posição x inicial); y1 (posição y inical); x2 (final); y2 (final). O False no fim é pra vc escolher se vai ser Só Linha, ou Com Preenchimento. Como queremos Com Preenchimento, colocamos False.
  draw_set_color(c_black) //Configura a cor do Draw para Preto
  draw_set_halign(1) //Alinha(align) o Draw horizontalmente(h) no centro(1)
  draw_set_font(fontpause) //Configura a Fonte para a fontpause que criamos.
  draw_text(320,240,"JOGO PAUSADO") //Desenhar Texto.
  screen_refresh();
  keyboard_wait();
{
  if (keyboard_lastkey == vk_enter)
  {
  io_clear();
  }
  else
  {
  scr_pause();
  }
}
}

Uma coisa importante sobre Draw:
Perceba que duas vezes Configuramos a cor...
"Por que?"
Porque um script de Draw segue a Ordem que vc coloca as coisas, ou seja, as primeiras linhas que vc coloca, sejam sprites, cores ou fontes, serão as primeiras a ser executadas, e o que estiver 'embaixo' vai ser desenhado por cima do anterior.
Para ver isso acontecer experimente trocar os Valores dos draw_set_color que usamos. Coloque c_black no primeiro e c_white no segundo.


Para finalizar crie uma room com o tamanho 640x480 e coloque o obj_pause nela. Rode o jogo e veja o que acontece.
É interessante fazer os dois tipos, com draw_sprite, e o draw mais complexo.



Sei que o pause com draw sem sprite deve ter ficado bem esquisito aí, mas é só questão de arrumar as coordenadas do draw_rectangle e o tamanho da fonte.
Enfim, explorem o draw, é um evento muito legal de se usar quando começa a pegar as manhas. E também é vantajoso saber usá-lo porque além de existir mtos tipos de draw no GM, outras funções como collision_rectangle seguem os mesmo principios.


Eu odiava usar draw, pq achava mto complicado, mas quebrei a cabeça fazendo testes e aprendendo, hoje gosto muito mais usá-lo. Dá uma grande liberdade.


É isso galera, se tiver algum erro no tuto me avisem que corrijo aqui.

Próximo Tutorial: Um Único Script para Todos Diálogos do Jogo


Abração!
DHarrison.
flw


Última edição por dharrison em Seg 22 Nov 2010, 20:36, editado 1 vez(es) (Razão : Explicando melhor o código)

dharrison

Ranking : Nota B
Número de Mensagens : 1243
Idade : 25
Data de inscrição : 04/02/2009
Notas recebidas : A - B
Reputação : 89
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Prêmios
   : 0
   : 1
   : 0

Voltar ao Topo Ir em baixo

Re: [Tutorial] Criando um Pause Personalizado

Mensagem por Luca$ em Sex 19 Nov 2010, 22:10

Nao testei ainda cara
Mais parece ta legal
parabens
Very Happy

Luca$

Ranking : Nota D
Número de Mensagens : 582
Data de inscrição : 10/10/2010
Notas recebidas : D-C
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Tutorial] Criando um Pause Personalizado

Mensagem por Markituh em Sex 19 Nov 2010, 22:15

Wow... It's a nice tutorial! Better than mine... Your tutorial teach how to make a professional pause, with a sprite, that turn into custom pause. Again, congratulations for you, [...] Brinks Very Happy

Muito bom o tutorial! O seu tuto ensina um meio de fazer um pause profissional, que usando uma sprite, transforma ele num personalizado Very Happy Mas,script para todos os diálogos no jogo? Seria uma show_message personalizado? Espero que sim Razz

Atenção:
Este sistema gostaria de informar que o texto acima não foi escrito com o Google Tradutor, e sim pelo usuário, que é um estudante nato. A máquina não se responsabiliza por quaisquer danos morais causados ao usuário.

Hehe,abraços!

___________

"Não deixe para amanhã o que se pode fazer hoje"

Links úteis:
Índice de Tutoriais
Manual online do GMS

Markituh

Ranking : Sem avaliações
Número de Mensagens : 2183
Data de inscrição : 11/10/2009
Reputação : 106
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Tutorial] Criando um Pause Personalizado

Mensagem por dharrison em Sex 19 Nov 2010, 22:23

Markituh
uhasuhasuhasuhaush
sussu, manjo ingless tbm ;)

Sobre o próximo tutorial, é um evento que usa os mesmo principios deste tutorial, mas adicionando vars globais e objs com parent.

to esfriando a cabeça um pouco, talvez nas proximas horas eu poste ele.
E com ele vou postar a engine junto. ( Sim! Dessa vez vai ter engine lol! )


GMLucas
Vlw *-*
Se vc chegar a testá-lo, de um Edit e me diga se gostou Feliz

dharrison

Ranking : Nota B
Número de Mensagens : 1243
Idade : 25
Data de inscrição : 04/02/2009
Notas recebidas : A - B
Reputação : 89
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Prêmios
   : 0
   : 1
   : 0

Voltar ao Topo Ir em baixo

Re: [Tutorial] Criando um Pause Personalizado

Mensagem por Conteúdo patrocinado Hoje à(s) 21:12


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum