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
» Colisões não funcionando
por RastaMaan Sex 26 Abr 2024, 19:49

» Como ajustar velocidade de cada frame da animação no game maker
por pequetux Sex 26 Abr 2024, 16:45

» Preciso de ajuda
por AftonDuGrau Dom 21 Abr 2024, 20:18

» Como faz o evento drawn GUI, não se repetir?
por aminaro Sex 19 Abr 2024, 20:30

» PROBLEMAS COM FÍSICAS DE ÁGUA
por aminaro Ter 16 Abr 2024, 10:07

» Retorno da GMBR!!!
por Ralphed Sex 12 Abr 2024, 22:45

» JOGADOR PARANDO NO AR QUANDO ATACA
por aminaro Qua 10 Abr 2024, 13:51

» Problemas com texto interativo
por Kaaru72 Dom 07 Abr 2024, 11:31

» Erro escondido e indecifrável
por dev_gabize.azv Qui 04 Abr 2024, 10:11

» Mudar cor de apenas uma palavra
por Ralphed Sáb 30 Mar 2024, 00:39

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

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

» 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


Caixas de diálogo em GML Parte 1

+3
victor_aco
GuiEdu
fonetico
7 participantes

Ir para baixo

caixa de dialogo - Caixas de diálogo em GML Parte 1 Empty Caixas de diálogo em GML Parte 1

Mensagem por fonetico Dom 03 Out 2010, 15:30

Nome: Caixas de diálogo em GML Parte 1
Descrição: Neste tutorial eu explico os principais códigos para mostrar e customizar caixas de diálogo no Game Maker.
Requerimentos: Qualquer GM superior à versão 6 (LITE E PRO)
Nível: Básico

Nota: Recomendável deixar o HTML ativado no seu perfil para visualizar o tutorial adequadamente.

Caixas de Diálogo em GML


Como todo programador sabe, um script possui várias funções inimagináveis, simples, complicadas e até incontáveis. O GML não é diferente. Ele possui muitíssimas funções e entre elas, há um grupo muito útil para os programadores. As funções de caixas de diálogo. Vale lembrar que uma caixa de diálogo é um elemento que nos dá informação em forma de mensagem, sendo que há vários tipos delas, algumas para clicar em botões, outras para escrever entre muitos outros.

Neste tutorial, eu vou mostrar códigos para fazermos aparecer essas mensagens, manipulá-las e modificá-las, mudando cores e designs. Primeiro, vamos começar pelos tipos de mensagens que há no GML, sua manipulação, e por fim sua customização, nessa ordem.


Tipos de Mensagens


Há um número considerável de mensagens que podemos usar: mensagem simples, mensagem com opções, mensagem de pergunta, mensagem para escrever uma frase e mensagem para escrever números.

Cada um possui uma característica diferente e é usado de formas diferentes.

Mensagens Simples

Essa mensagem é um clássico. Vários de vocês a usam. E como sabem, serve somente para mostrar uma determinada informação e um botão de OK. Sua estrutura é a seguinte:

show_message(str);

Ela é fácil de usar. Porque só é necessário colocar entre aspas no lugar de str a frase que quer aparecer.

Mensagens com Opções


Está já é mais sofisticada. Por sua vez, ela exibe a mensagem em si e mais três botões, ao contrário da mensagem simples, que só mostrava um botão de OK. E o melhor de tudo! Você pode colocar as funções que quiser para cada botão pressionado. Sua estrutura é:

show_message_ext(str,but1,but2,but3);

Em str assim como a mensagem simples, coloca-se a mensagem propriamente dita sempre entre aspas não se esqueça. Em but1 deve-se colocar o texto do primeiro botão da mensagem, também entre aspas. O mesmo vale para os demais itens do código. Lembrando que não é obrigatório ter três botões para apertar, quero dizer, se você quiser, pode deixar somente dois, ou até mesmo um botão. Basta deixar um dos argumentos vazio. Abaixo um exemplo com dois botões: um de sair e outro de continuar.

show_message_ext(“pause”,”continuar”,””,”sair”)


--> Aplicando funções para cada botão: Não é difícil, mas exige atenção, principalmente se você usar o método sem variável.

•--> Com variável: Logicamente precisamos de uma variável que não precisa ser criada antes, porque ela será criada no momento que você usar a mensagem. A função de mensagem com opções, depois de ter um dos seus três botões pressionados, ela retorna um valor, que é o botão pressionado. A variável serve para guardar esse valor. Então primeiro a ligamos com a função:

Nome_da_variavel = show_message_ext(“Está gostando do tutorial?”,”sim”,”não”,”claro!”);

Os valores retornados são: 1 se o primeiro botão foi pressionado, 2 se foi o segundo, e 3 se foi o terceiro. Logo abaixo do código acima, verificaremos o valor que a variável ficou, ou seja, o botão que foi pressionado. Então podemos fazer:

If nome_da_variavel = 1 //se o primeiro botão foi pressionado
{
//função
}
If nome_da_variavel = 2 //se o segundo botão foi pressionado
{
//função
}
If nome_da_variavel = 3 //se o terceiro botão foi pressionado
{
//função
}


•--> Sem variável: Sim isso é possível, mas um pouco mais complicado porque usaremos uma função complexa, switch. Essa função funciona da seguinte forma:

switch(condição)
{
case val:
Função; break;

case val:
Função; break;

case val:
Função; break;
...
}


É um pouco difícil de explicar, mas é assim. Como a maioria do pessoal sabe certas funções retornam valores, como podemos ver na função da mensagem com opções. Então, em condição devemos colocar a função que estamos trabalhando agora, para que o switch teste seus valores. Logo abaixo, colocamos os cases. Eles são como if só que são mais práticos. Nessa hora, colocamos case + o valor que vai ser testado + : + função se for verdadeiro; + break; . O break serve para parar o switch de executar as demais funções, porque senão ele vai direto, mesmo que os outros valores não sejam verdadeiros. E como estamos usando o show_message_ext, precisamos fazer 3 cases, se formos usar três botões, dois cases, se for dois botões e assim sucessivamente. Então voltando ao nosso exemplo, fica assim:

switch(show_message_ext(“Está gostando do tutorial?”,”sim”,”não”,”claro!”))
{
case 1:
show_message(“que bom que está gostando”); break;
case 2:
show_message(“Ah, que pena!”); break;
case 3:
show_message(“Ah, estou tão feliz por ter gostado tanto!”); break;
}


E é dessa forma que podemos usar a função sem variáveis. Qualquer dúvida pode perguntar em baixo do tópico.

Mensagem de Perguntas


Eu considero esse tipo de mensagem inútil. Porque com as mensagens de opções, podemos fazer a mesma coisa que essa caixa faz. Sua função é fazer uma pergunta ao jogador e lhe fornecer dois botões para respondê-la: Yes (sim) e No (não). Se o jogador escolher Yes, o código retornará 1, se for No, retornará 0. Seu código é:

show_question(str);

Em str você deve colocar a pergunta entre aspas.
E para saber se o usuário clicou em Yes ou no, você pode fazer da mesma forma com a mensagem de opções. Com variável:

mensagem = show_question(“Gostou do tutorial?”);
if mensagem = 0
show_message(“Que pena!”);
if mensagem = 1
show_message(“Que bom!”);


Ou com switch:

switch(show_question(“Gostou do tutorial?”))
{
case 0:
show_message(“Que pena!”); break;
case 1:
show_message(“Que bom!”); break;
}


Mensagem para escrever Números


Esse tipo de mensagem é mais interessante. Ele mostra ao jogador uma mensagem, com uma caixa de texto embutida para o usuário escrever algo e um botão de OK. E o melhor de tudo, ela guarda esse valor em uma variável.
É usado com mais freqüência para inserir algum número durante o jogo, que não seja considerado uma string. Para usá-la, usa-se:

get_integer(str,def);

Em str, coloca-se a mensagem que vai aparecer. E em def, deve-se colocar o texto que irá aparecer dentro da caixa para se escrever.

Para usar a função, por exemplo, para identificar um número, você pode usar o mesmo método da mensagem com opções. É só ir testando os valores como, por exemplo:

if mensagem = 16
show_message(“Eu tenho 16 anos oO”);


Mensagem para escrever Frases


Não há muito que falar sobre essa função. Ela funciona igual à mensagem de número, a diferença é que é usada para escrever uma frase, ou seja, uma string. Seu código é:

get_string(str,def)

Sua estrutura é igual à mensagem acima.

E abaixo a diferença visual entre as mensagens:
caixa de dialogo - Caixas de diálogo em GML Parte 1 Imagemhsf

Adicionando variáveis às mensagens


É possível mostrar valores de variáveis nas mensagens, como por exemplo: "Parabéns! Você fez 150 pontos!". Os 150 seria o valor do score, adicionado à mensagem. É bem simples. Para isso, basta colocar no argumento str, entre aspas, o texto, em string(variavel) a variavel, separando os elementos por um sinal de adição. Para não complicar, vamos usar o exemplo acima.


show_message("Parabéns! Você fez "+string(score)+" pontos.");


Esse é o fim da primeira parte do tutorial. Na segunda parte (e última), vou mostrar a customização dessas mensagens. Até lá! E qualquer coisa, pergunte no tópico.

Próxima aula --->


Última edição por fonetico em Seg 04 Out 2010, 21:57, editado 2 vez(es)
fonetico
fonetico

Data de inscrição : 05/10/2009
Reputação : 7
Número de Mensagens : 1830
Prêmios : caixa de dialogo - Caixas de diálogo em GML Parte 1 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

caixa de dialogo - Caixas de diálogo em GML Parte 1 Empty Re: Caixas de diálogo em GML Parte 1

Mensagem por GuiEdu Dom 03 Out 2010, 15:52

hehe, parece que foi ontem que sugeriu isso xD
Cara, entendi tudo direitinho, muito bem explicado com exemplos e tal, parabens =)vai demorar mto para postar como customozá-las? vc já tá editando um tuto?
vlw Happy
GuiEdu
GuiEdu

Data de inscrição : 04/06/2010
Reputação : 0
Número de Mensagens : 505
Prêmios : caixa de dialogo - Caixas de diálogo em GML Parte 1 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

caixa de dialogo - Caixas de diálogo em GML Parte 1 Empty Re: Caixas de diálogo em GML Parte 1

Mensagem por victor_aco Dom 03 Out 2010, 16:01

Muito bom o tuto. Tudo muito bem explicado.
Espero a segunda parte pra ver se vale a pena usar essas funções do GM.
victor_aco
victor_aco

Data de inscrição : 25/03/2010
Reputação : 2
Número de Mensagens : 666
Prêmios : caixa de dialogo - Caixas de diálogo em GML Parte 1 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

caixa de dialogo - Caixas de diálogo em GML Parte 1 Empty Re: Caixas de diálogo em GML Parte 1

Mensagem por freysun Dom 03 Out 2010, 16:10

Fonetico prabens,ótimo tuto,só uma pergunta?
Na de escrever a frase tem como ex
Escreva a senha
Se ele escrever a senha certa ele passa tipo(a senha é to aki)
e ele escreve oi,aparece uma mensagem vc errou.
Mas se ele escrever to aki aparece Vc acertou
freysun
freysun

Data de inscrição : 23/06/2010
Reputação : 6
Número de Mensagens : 344
Prêmios : caixa de dialogo - Caixas de diálogo em GML Parte 1 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

caixa de dialogo - Caixas de diálogo em GML Parte 1 Empty Re: Caixas de diálogo em GML Parte 1

Mensagem por victor_aco Dom 03 Out 2010, 16:13

freysun basta voce seguir o raciocínio do exemplo que ele deu na caixa de Mensagem para escrever Números e vai conseguir montar o que você quer.
victor_aco
victor_aco

Data de inscrição : 25/03/2010
Reputação : 2
Número de Mensagens : 666
Prêmios : caixa de dialogo - Caixas de diálogo em GML Parte 1 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

caixa de dialogo - Caixas de diálogo em GML Parte 1 Empty Re: Caixas de diálogo em GML Parte 1

Mensagem por freysun Dom 03 Out 2010, 16:19

Não deu aki ta falando que não existe a variavel mensagem
freysun
freysun

Data de inscrição : 23/06/2010
Reputação : 6
Número de Mensagens : 344
Prêmios : caixa de dialogo - Caixas de diálogo em GML Parte 1 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

caixa de dialogo - Caixas de diálogo em GML Parte 1 Empty Re: Caixas de diálogo em GML Parte 1

Mensagem por fonetico Dom 03 Out 2010, 17:00

GuiEdu disse:
hehe, parece que foi ontem que sugeriu isso xD
Cara, entendi tudo direitinho, muito bem explicado com exemplos e tal, parabens =)vai demorar mto para postar como customozá-las? vc já tá editando um tuto?
vlw

Acho que amanhã já posto a segunda parte. Mas antes de escrevê-la, eu estou adicionando mais um ítem à este tutorial que acabei me esquecendo... Segredo xD

Victor_bh disse:

Muito bom o tuto. Tudo muito bem explicado.
Espero a segunda parte pra ver se vale a pena usar essas funções do GM.

Ah obrigado pelo elogio. Espero que você goste das funções, pra mim elas valem mesmo à pena! xD São fáceis e versáteis.

freysun disse:
Fonetico prabens,ótimo tuto,só uma pergunta?
Na de escrever a frase tem como ex
Escreva a senha
Se ele escrever a senha certa ele passa tipo(a senha é to aki)
e ele escreve oi,aparece uma mensagem vc errou.
Mas se ele escrever to aki aparece Vc acertou

Sim tem! Só que depende. Se a senha é números, você usa o get_integer, e se for uma frase, palavra etc. Você usa o get_string. E se o erro da variável aconteceu, deve ser porque você está usando o código de outra forma. Uma forma de resolver seria colocando a variável no create, lembrando que nem sempre é necessário.

Fiz um exemplo usando o que você pediu:

De preferência, coloca no create pra que não apareçam infinitas mensagens:


msg = get_string("Digite a sua senha","Escreva aqui")
if msg = "to aki"
show_message("Você acertou!");
else
show_message("Você errou!");


EDIT

Atualização no tutorial!
Adicionado a forma de como se coloca variáveis nas mensagens
fonetico
fonetico

Data de inscrição : 05/10/2009
Reputação : 7
Número de Mensagens : 1830
Prêmios : caixa de dialogo - Caixas de diálogo em GML Parte 1 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

caixa de dialogo - Caixas de diálogo em GML Parte 1 Empty Re: Caixas de diálogo em GML Parte 1

Mensagem por lcj Dom 03 Out 2010, 17:58

Parabens! pelo tutorial fonetico. Muito bem explicado e formatado, a unica que eu ainda não conhecia era a get_integer.
Espero pela segunda parte xD
avatar
lcj

Data de inscrição : 18/01/2010
Reputação : 0
Número de Mensagens : 41
Prêmios : caixa de dialogo - Caixas de diálogo em GML Parte 1 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

caixa de dialogo - Caixas de diálogo em GML Parte 1 Empty Re: Caixas de diálogo em GML Parte 1

Mensagem por fonetico Dom 03 Out 2010, 18:32

lcj escreveu:Parabens! pelo tutorial fonetico. Muito bem explicado e formatado, a unica que eu ainda não conhecia era a get_integer.
Espero pela segunda parte xD

Obrigado! Dessa vez eu escolhi um assunto que acredito chamar a atenção do pessoal. Espero ter acertado! Very Happy
fonetico
fonetico

Data de inscrição : 05/10/2009
Reputação : 7
Número de Mensagens : 1830
Prêmios : caixa de dialogo - Caixas de diálogo em GML Parte 1 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

caixa de dialogo - Caixas de diálogo em GML Parte 1 Empty Re: Caixas de diálogo em GML Parte 1

Mensagem por Vikintor Dom 03 Out 2010, 18:48

Parabéns pelo tutorial muito bom principalmente para os iniciantes ou para quem desconhece tal funções.
Cool
Vikintor
Vikintor

Games Ranking : Nota B

Notas recebidas : B
Data de inscrição : 28/03/2010
Reputação : 17
Número de Mensagens : 901
Prêmios : caixa de dialogo - Caixas de diálogo em GML Parte 1 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

caixa de dialogo - Caixas de diálogo em GML Parte 1 Empty Re: Caixas de diálogo em GML Parte 1

Mensagem por vitor_liminha123 Sáb 09 Out 2010, 17:01

Santo God of War!!!
Obrigado pelo tuto, foi uma luz na escuridão *.*
Muito bom e explicado, adorei!

Nota:10
vitor_liminha123
vitor_liminha123

Data de inscrição : 16/08/2010
Reputação : 12
Número de Mensagens : 510
Prêmios : caixa de dialogo - Caixas de diálogo em GML Parte 1 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

caixa de dialogo - Caixas de diálogo em GML Parte 1 Empty Re: Caixas de diálogo em GML Parte 1

Mensagem por fonetico Sáb 09 Out 2010, 23:00

Mais uma vez obrigado!
E vitor, me deixou até sem jeito xD

Bem, de qualquer forma, mais uma vez obrigado.
fonetico
fonetico

Data de inscrição : 05/10/2009
Reputação : 7
Número de Mensagens : 1830
Prêmios : caixa de dialogo - Caixas de diálogo em GML Parte 1 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

caixa de dialogo - Caixas de diálogo em GML Parte 1 Empty Re: Caixas de diálogo em GML Parte 1

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