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

Esqueci-me da senha

Últimos assuntos
» Retorno da GMBR!!!
por theguitarmester Ter 19 Mar 2024, 22:38

» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27

» Mod APK
por gamerainha Qua 13 Mar 2024, 06:30

» Mudar cor de apenas uma palavra
por lunalol Sex 01 Mar 2024, 13:42

» Aceito pedidos de sprites (Com exemplos meus)
por Sevilha Qua 28 Fev 2024, 12:17

» Inventário simples
por Isquilo_Roedor Qui 22 Fev 2024, 15:18

» Problemas na programaçnao de inimigo [jogo DOOM LIKE]
por Black Mirror Dom 11 Fev 2024, 13:34

» ANDROID MULTI TOUCH
por DiegoBr Dom 04 Fev 2024, 12:13

» Servidor de Discord do fórum?
por Lighter Sáb 27 Jan 2024, 17:18

» Save e Load Json
por Klinton Rodrigues Qui 25 Jan 2024, 11:12

» Colisão com mais de um objeto
por aminaro Seg 22 Jan 2024, 15:02

» Oi sou novo aqui
por Thiago Silveira Alexandre Sáb 20 Jan 2024, 20:55

» Como acessar conteudo comprado no marketplace
por macmilam Sex 19 Jan 2024, 07:42

» Devlogs em vídeos do Block Room
por Joton Seg 15 Jan 2024, 16:56

» Alguém aqui já ganha dinheiro com seus games?
por Joton Seg 15 Jan 2024, 16:49

» ACERVO GMBR MAGAZINE
por Joton Qui 11 Jan 2024, 19:21

» como aumentar o obj sem aumentar a colisão??
por GabrielXavier Qua 10 Jan 2024, 07:21

» Asteroid Core - Early Acesse Update [0.2.0.0]
por JOZ. Seg 08 Jan 2024, 14:39

» Versionamento de código com GitHub
por GabrielXavier Seg 08 Jan 2024, 07:32

» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por kolesovsup Sex 29 Dez 2023, 07:16

» a funçao approach ainda existe?
por PEDRINDEV Ter 26 Dez 2023, 20:05

» Inimigo ataca até por trás! >:(
por saim Sex 22 Dez 2023, 08:55

» [RESOLVIDO]Spawn após morte
por Deception_1999 Dom 17 Dez 2023, 16:39

» Remunerado $$$ - Procuro programador para ajudar a "montar" um jogo
por theguitarmester Sáb 02 Dez 2023, 16:28

» Game maker nao abre
por Cerf Dom 26 Nov 2023, 12:01


[Tutorial] Janelas Dinâmicas II

+4
rafasgb
†Ceifador
fenanco
Fuzenrad
8 participantes

Ir para baixo

[Tutorial] Janelas Dinâmicas II Empty [Tutorial] Janelas Dinâmicas II

Mensagem por Fuzenrad Sáb 11 Set 2010, 19:42

Janelas dinâmicas
(Parte 2/4 - Janela com botões)

No tutorial anterior (Janelas Dinâmicas I) eu expliquei como posicionar imagens e textos em uma janela, muito bom quando se deseja mostrar ao jogador algo relacionado ao jogo, como a missão atual, o inventário ou algum item.

Nesse, vou mostrar como posicionar botões de opção, bem parecido com o esquema padrão do Windows. Um janela com Ok, Ok/Cancelar e Sim/Não.

Antes de tudo, vamos criar a janela, o esquema é o mesmo do outro, fazer primeiramente um layout, só pra posicionar corretamente os itens nela.

[Tutorial] Janelas Dinâmicas II Gradeb

Esse é o espaço que será usado para criar a janela, existem diversos programas especializados para edição e criação de imagens como GIMP e Photoshop, mas é possível fazer no próprio editor de imagens do Game Maker.

O próximo passo é determinar a região onde será disposto o texto e os botões.

[Tutorial] Janelas Dinâmicas II Areao

Feito isso e usando seu editor de imagens preferido, crie uma janela com alguma imagem de fundo, com algum efeito, sombra, iluminação, enfim, aqui a sua imaginação manda.

[Tutorial] Janelas Dinâmicas II Finaljw

Nesse exemplo eu fiz um efeito bem simples de metal, com uma textura bem leve, combina com vários tipos de jogos. O espaço da mensagem da janela eu destaquei para diferenciar das outras áreas, mas fica a critério de cada um, eu particularmente gosto de efeitos assim, são simples, mas muito agradáveis.

[Tutorial] Janelas Dinâmicas II Botaosprite

A mesma coisa foi feita com os botões, colocando o mesmo efeito, mas em um tom diferente, a terceira imagem é a segunda invertida horizontalmente e verticalmente (textura aplicada depois).

Ao enviá-las para o Game Maker, configure a região de origem dessas sprites, do botão para 29x10 e da Janela para 133x46, como mostrado nas imagens abaixo:

[Tutorial] Janelas Dinâmicas II Botaoorigem

[Tutorial] Janelas Dinâmicas II Janelaorigem

Como exemplo, as 3 janelas que serão criadas nesse tutorial são:

Botão: Ok
Texto: "Para que as configurações sejem aceitas, é necessário reiniciar o Jogo."

Botões: Ok/Cancelar
Texto: "Você tem certeza que deseja encerrar o aplicativo? Seu jogo será perdido."

Botões: Sim/Não
Texto: "O arquivo selecionado já existe. Deseja substituir?"

Terminado a parte gráfica, vamos agora para a programação.

Em um novo objeto, chamado botao_ok, será configurado as opções da sprites no Mouse Left Pressed, Mouse Left Released, Mouse Enter e Mouse Leave, pra respectivamente image_single=2, image_single=1, image_single=1 e image_single=0. E no evento create será indicado somente:

Código:
image_single=0
//Faz com que o objeto inicie com a sprite parada
tahoma_n=font_add("Tahoma",8,1,0,32,127)
//Seta a fonte usada no objeto
No evento Draw inserimos:

Código:
draw_set_font(tahoma_n)
//Chama a fonte tahoma_n
draw_set_halign(1)
//Alinhamento horizontal no centro (1)
draw_set_valign(1)
//Alinhamento vertical no centro (1)

draw_sprite_ext(sprite_index,image_single,x,y,1,1,0,c_white,image_alpha)
//Mostra a sprite do botão

draw_text_color(x+1,y,"Ok",c_gray,c_silver,c_gray,c_silver,image_alpha)
draw_text_color(x,y-1,"Ok",c_black,c_dkgray,c_black,c_black,image_alpha)
//Mostra "Ok" em preto com uma sombra cinza
O mesmo com os botões Cancelar, Sim e Não, no Gm é possível duplicar um objeto, o que ajuda bastante, mas lembre-se de alterar o texto que será mostrado no Botão, substituindo por "Cancelar", "Sim" e "Nao" respectivamente.

[Tutorial] Janelas Dinâmicas II Duplicar

É necessário agora fazer um novo objeto, com a sprite da janela para controlar os botões e posicioná-los corretamente.

No evento Create desse novo objeto:

Código:
instance_create(x,y,botao_ok)
//Cria o botão iniciar
instance_create(x,y,botao_cancelar)
//Cria o botão Cancelar

tahoma_n=font_add("Tahoma",8,1,0,32,127)
//Seta a fonte do objeto

mensagem="Voce tem certeza que deseja#encerrar o aplicativo?##Seu jogo sera perdido."
//Determina a mensagem a ser mostrada
Ao criar os botões eles serão posicionados na posição X e Y da janela, mas não estão alinhados, isso será feito no evento Step desse objeto:

Código:
with instance_nearest(x,y,botao_ok) {
x=other.x-80
y=other.y+61 }
/*Com o objeto botão_ok mais próximo, posicione em -80 e +61.*/

with instance_nearest(x,y,botao_cancelar) {
x=other.x+80
y=other.y+61 }
/*Com o objeto botão_cancelar mais próximo, posicione em +80 e +61.*/
E no evento Draw quase a mesma coisa do objeto botão:

Código:
draw_set_font(tahoma_n)
//Define a fonte
draw_set_halign(1)
draw_set_valign(1)
//Alinhamento horizontal e vertical no centro (1)

draw_sprite_ext(sprite_index,image_single,x,y,1,1,0,c_white,image_alpha)
//Desenha a sprite da janela

draw_text_color(x,y,mensagem,c_black,c_dkgray,c_black,c_black,image_alpha)
//Desenha o texto na janela
Pra posicionar um botão no centro:

Código:
with instance_nearest(x,y,botao_ok) {
x=other.x
y=other.y+61 }
As outras janelas são exatamente a mesma coisa, só muda o texto e o botão delas, é possível fazer algum efeito de movimento ou de Fade in/out (como feito no tutorial anterior), tornando-as mais profissional. O grande diferencial dessas janelas é que elas não interferem no funcionamento do jogo e é possível atribuir uma grande gama de possibilidades.

E finalmente o resultado será:

[Tutorial] Janelas Dinâmicas II Resultado3

[Tutorial] Janelas Dinâmicas II Resultado2

[Tutorial] Janelas Dinâmicas II Resultado1

Baixar a engine desse tutorial
Observação: A engine tem as 3 janelas concluídas, separadas em rooms diferentes, ajuda no estudo, pra colocar as funções desejadas, basta inserí-las no evento "Mouse Released", como game_end(), room_goto_next(), depende da situação.

No próximo tutorial vou mostrar como fazer janelas com locais para inserir dados, seja texto ou número e adicioná-las a uma variável ao confirmar (e usá-la no jogo).
Fuzenrad
Fuzenrad

Games Ranking : Nota A

Notas recebidas : A-A-A-A-B
Data de inscrição : 04/07/2010
Reputação : 46
Número de Mensagens : 1063
Prêmios : [Tutorial] Janelas Dinâmicas II Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 1

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

[Tutorial] Janelas Dinâmicas II Empty Re: [Tutorial] Janelas Dinâmicas II

Mensagem por fenanco Sáb 11 Set 2010, 21:27

muitto boom esse tutorial muito explicado e bem util
fenanco
fenanco

Data de inscrição : 16/07/2010
Reputação : 0
Número de Mensagens : 88
Prêmios : [Tutorial] Janelas Dinâmicas II Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

[Tutorial] Janelas Dinâmicas II Empty Re: [Tutorial] Janelas Dinâmicas II

Mensagem por †Ceifador Sáb 11 Set 2010, 21:49

Grande tutorial Fuzenrad. Serve de exemplo aos demais, bem escrito, bem apresentado, resumindo, bem trabalhado. Independente do nível do conteúdo acho isso fundamental, pois as vezes alguns usuários sequer postam uma imagem ilustrativa (exceto quando não se aplica, naturalmente) pra enriquecer o trabalho.
†Ceifador
†Ceifador

Data de inscrição : 28/08/2010
Reputação : 0
Número de Mensagens : 154
Prêmios : [Tutorial] Janelas Dinâmicas II Empty

Medalhas x 0 Tutoriais x 1 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

[Tutorial] Janelas Dinâmicas II Empty Re: [Tutorial] Janelas Dinâmicas II

Mensagem por rafasgb Sáb 11 Set 2010, 22:33

Perfeito o tutorial!
Para quem quer que seu tutorial não seja deletado a partir do dia 10, é melhor começar a seguir este modelo.
Como o ceifador disse, bem escrito, bem apresentado... bem trabalhado.

Continue assim ;D
rafasgb
rafasgb

Games Ranking : Nota A

Notas recebidas : A
Data de inscrição : 19/05/2008
Reputação : -32
Número de Mensagens : 581
Prêmios : [Tutorial] Janelas Dinâmicas II Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 1

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

[Tutorial] Janelas Dinâmicas II Empty Re: [Tutorial] Janelas Dinâmicas II

Mensagem por Super Games Sáb 11 Set 2010, 22:45

Você está ajudando muito o forum Fuzenrad.
Seu tutorial está hiper bom.
E Foi bom você ter feito a engine, assim as pessoas que não etenderam o tutorial iram poder ver GMK.
Continue assim cara!

Até!
Super Games
Super Games

Games Ranking : Nota C

Notas recebidas : C
Data de inscrição : 10/06/2010
Reputação : 36
Número de Mensagens : 2799
Prêmios : [Tutorial] Janelas Dinâmicas II Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 1 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0
  • Java
  • C ou C++


Ir para o topo Ir para baixo

[Tutorial] Janelas Dinâmicas II Empty Re: [Tutorial] Janelas Dinâmicas II

Mensagem por vitor_liminha123 Dom 12 Set 2010, 10:48

MUIIIIIIIITOOOOOOOOO OBRIGADOOOOOOOOOOOOOOOOOOO!!!!
Vai me ajudar pra caramba!
VALEU's
vitor_liminha123
vitor_liminha123

Data de inscrição : 16/08/2010
Reputação : 12
Número de Mensagens : 510
Prêmios : [Tutorial] Janelas Dinâmicas II Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://www.newgrounds.com/tanber

Ir para o topo Ir para baixo

[Tutorial] Janelas Dinâmicas II Empty Re: [Tutorial] Janelas Dinâmicas II

Mensagem por Grotle Dom 12 Set 2010, 13:11

Muito legal mesmo cara!
Esse tipo de janelhina é muito útil pra substituir a função de menssagens que já vem com o GM.
Continue assim, vai ajudar muita gente (inclusive eu, um mero mortal).
Flw!
Grotle
Grotle

Games Ranking : Nota B

Notas recebidas : B-B
Data de inscrição : 28/02/2010
Reputação : 12
Número de Mensagens : 559
Prêmios : [Tutorial] Janelas Dinâmicas II Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://gsogaming.blogspot.com/

Ir para o topo Ir para baixo

[Tutorial] Janelas Dinâmicas II Empty Re: [Tutorial] Janelas Dinâmicas II

Mensagem por OverClock26 Dom 12 Set 2010, 16:54

Obrigado por colaborar.
OverClock26
OverClock26

Data de inscrição : 29/05/2010
Reputação : 0
Número de Mensagens : 12
Prêmios : [Tutorial] Janelas Dinâmicas II Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

[Tutorial] Janelas Dinâmicas II Empty Re: [Tutorial] Janelas Dinâmicas II

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