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


Help! - Show message

4 participantes

Ir para baixo

Help! - Show message Empty Help! - Show message

Mensagem por tha.sribeiro Sáb 30 Ago 2014, 11:00

Pessoal, estou desenvolvendo um jogo educativo sobre mudanças climáticas (faz parte de um projeto de pesquisa) e em uma determinada parte, o jogador precisa calcular a emissão de CO² da casa dele. Então ele vai em cada comodo da casa, clica em um aparelho eletrônico e responde as perguntas relacionadas. Para fazer as perguntas estou usando show_message e recebendo os valores. Mas são muitas perguntas, que vão aparecendo conforme clicamos em 'ok'. O problema é que quando clicamos em cancelar elas continuam aparecendo (o que faz todo sentido, já que são vários 'show_messages' rs). Existe alguma maneira mais eficiente de fazer essas perguntas? Ou apenas uma maneira de cancelar todas as perguntas e não apenas a que o usuário pedir para cancelar?

Link para o jogo, caso queiram visualizar. (Não reparem nos erros, preciso ajusta-lo!)
tha.sribeiro
tha.sribeiro

Data de inscrição : 30/08/2014
Reputação : 0
Número de Mensagens : 14
Prêmios : Help! - Show message 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

Help! - Show message Empty Re: Help! - Show message

Mensagem por matheusco Sáb 30 Ago 2014, 11:52

O jeito que vejo de resolver isso é condicionar uma pergunta à outra, colocando um contador pra ir avançando de acordo com as perguntas respondidas. Caso ele clique em cancelar, então usa um "break" ou "exit' no código.

Se clicarmos em ok, aumentamos 1 no contador perguntas, se clicarmos em cancelar, o contador é resetado. Depois fazemos algo como:

switch perguntas
{
case 1: show_message("oi")
break;
case 2: show_message("qual sua idade?")
break;
}

matheusco
matheusco

Data de inscrição : 10/08/2014
Reputação : 51
Número de Mensagens : 395
Prêmios : Help! - Show message Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 0

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

http://www.tutoriaisgamemaker.com.br

Ir para o topo Ir para baixo

Help! - Show message Empty Re: Help! - Show message

Mensagem por tha.sribeiro Dom 31 Ago 2014, 12:03

matheusco escreveu:O jeito que vejo de resolver isso é condicionar uma pergunta à outra, colocando um contador pra ir avançando de acordo com as perguntas respondidas. Caso ele clique em cancelar, então usa um "break" ou "exit' no código.

Se clicarmos em ok, aumentamos 1 no contador perguntas, se clicarmos em cancelar, o contador é resetado. Depois fazemos algo como:

switch perguntas
{
case 1: show_message("oi")
break;
case 2: show_message("qual sua idade?")
break;
}



Como eu passo pra ele que se for 'ok' é uma coisa e se não for é outra?
Por exemplo:

conta = 0;
switch (conta) {
case 0:
   //Sobre o numero de moradores
       mora = real(get_string("Quantas pessoas moram na sua casa?", ""));
       global.cont_moradores = global.cont_moradores + mora;
       if (mora == 'O QUE EU COLOCO AQUI??? '  ){
           conta = conta + 1;
       }
       else {
           break;
       }
case 1:              
   //Sobre televisores
       tv1 = real(get_string("Quantas TVs grandes tem na sua casa?", ""));
       global.cont_tv = global.cont_tv + tv1;
       conta = conta + 1;
       break;

Porque se eu deixo apenas contando, como está no case 1 ele não continua a exibir as perguntas depois que eu clico em ok Sad
(Não tem mais show message porque preciso guardar os valores Very Happy )
tha.sribeiro
tha.sribeiro

Data de inscrição : 30/08/2014
Reputação : 0
Número de Mensagens : 14
Prêmios : Help! - Show message 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

Help! - Show message Empty Re: Help! - Show message

Mensagem por matheusco Dom 31 Ago 2014, 12:52

Não precisa colocar o contador dentro do Case, faz um código à parte pra alterar o valor de "conta" e o case você coloca as situações de acordo com essas alterações.

Se clicar em ok e a pergunta for respondida, adiciona 1 à conta, se não, mostra uma mensagem mandando responder. Um bloco de código vai verificar o avanço do jogador e o case vai "guiando" como as perguntas vão ser mostradas.

Talvez tenha um jeito mais fácil de fazer isso, mas no momento não consegui pensar em algum.
matheusco
matheusco

Data de inscrição : 10/08/2014
Reputação : 51
Número de Mensagens : 395
Prêmios : Help! - Show message Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 0

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

http://www.tutoriaisgamemaker.com.br

Ir para o topo Ir para baixo

Help! - Show message Empty Re: Help! - Show message

Mensagem por Isaque Onix Dom 31 Ago 2014, 13:12

bom, ainda nao intendi oque voce quer, mais voce pode, primeiramente, trocar:
Código:
mora =
real(get_string("Quantas pessoas moram na sua casa?", ""));
Por
Código:
mora = get_integer("Quantas pessoas moram na sua casa?", 0);

e no final do switch sempre coloque a funç. default... ela evita erros no seu projeto!
Isaque Onix
Isaque Onix

Games Ranking : Nota C

Notas recebidas : C
Data de inscrição : 15/08/2010
Reputação : 147
Número de Mensagens : 1625
Prêmios : Help! - Show message 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
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0
  • Unity
  • C#
  • Outros


http://spyreserver.16mb.com

Ir para o topo Ir para baixo

Help! - Show message Empty Re: Help! - Show message

Mensagem por tha.sribeiro Dom 31 Ago 2014, 13:19

matheusco escreveu:Não precisa colocar o contador dentro do Case, faz um código à parte pra alterar o valor de "conta" e o case você coloca as situações de acordo com essas alterações.

Se clicar em ok e a pergunta for respondida, adiciona 1 à conta, se não, mostra uma mensagem mandando responder. Um bloco de código vai verificar o avanço do jogador e o case vai "guiando" como as perguntas vão ser mostradas.

Talvez tenha um jeito mais fácil de fazer isso, mas no momento não consegui pensar em algum.

Ok, muito obrigada por responder!
Mas eu não sei como colocar no game maker se a pergunta foi respondida ou não, não sei como indicar o 'ok'... (sim, sou iniciante). Seria algo do tipo

conta = 0
if (mora == ok){
conta = conta+1
}

Como eu escrevo no Game Maker se foi 'ok' ou 'cancelar'?
tha.sribeiro
tha.sribeiro

Data de inscrição : 30/08/2014
Reputação : 0
Número de Mensagens : 14
Prêmios : Help! - Show message 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

Help! - Show message Empty Re: Help! - Show message

Mensagem por tha.sribeiro Dom 31 Ago 2014, 13:26

Isaque Onix escreveu:bom, ainda nao intendi oque voce quer, mais voce pode, primeiramente, trocar:
Código:
mora =
real(get_string("Quantas pessoas moram na sua casa?", ""));
Por
Código:
mora = get_integer("Quantas pessoas moram na sua casa?", 0);

e no final do switch sempre coloque a funç. default... ela evita erros no seu projeto!

Oii, é que eu estou fazendo essas perguntas em sequencia (são muitas), e elas são independentes pois preciso guardar os valores das respostas. Então, quando alguém clica em cancelar, cancela apenas uma pergunta e as outras continuam aparecendo. Eu preciso fazer isso de uma maneira que cancele todas as perguntas quando o usuário clicar em cancelar. Mas nunca fiz nada no Game Maker e tenho pouca experiencia em programação, então fico perdida hahaha
tha.sribeiro
tha.sribeiro

Data de inscrição : 30/08/2014
Reputação : 0
Número de Mensagens : 14
Prêmios : Help! - Show message 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

Help! - Show message Empty Re: Help! - Show message

Mensagem por matheusco Dom 31 Ago 2014, 13:42

Bom, ai depende como é seu botão de "ok". Se for uma instância você pode aumentar a conta em cada clique sobre ela. Ou você pode analisar se a pergunta anterior teve uma resposta válida.
matheusco
matheusco

Data de inscrição : 10/08/2014
Reputação : 51
Número de Mensagens : 395
Prêmios : Help! - Show message Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 0

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

http://www.tutoriaisgamemaker.com.br

Ir para o topo Ir para baixo

Help! - Show message Empty Re: Help! - Show message

Mensagem por tha.sribeiro Dom 31 Ago 2014, 13:52

matheusco escreveu:Bom, ai depende como é seu botão de "ok". Se for uma instância você pode aumentar a conta em cada clique sobre ela. Ou você pode analisar se a pergunta anterior teve uma resposta válida.

É uma janela do windows mesmo, ele cria sozinho. Tipo, eu coloco o real(get.... e ele já cria a pergunta com o campo de resposta e os botões ok e cancelar.
tha.sribeiro
tha.sribeiro

Data de inscrição : 30/08/2014
Reputação : 0
Número de Mensagens : 14
Prêmios : Help! - Show message 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

Help! - Show message Empty Re: Help! - Show message

Mensagem por matheusco Dom 31 Ago 2014, 13:56

Hm, não sei como o Game Maker verifica se apertou OK ou Cancelar nesse método :/
matheusco
matheusco

Data de inscrição : 10/08/2014
Reputação : 51
Número de Mensagens : 395
Prêmios : Help! - Show message Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 0

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

http://www.tutoriaisgamemaker.com.br

Ir para o topo Ir para baixo

Help! - Show message Empty Re: Help! - Show message

Mensagem por tha.sribeiro Dom 31 Ago 2014, 14:01

matheusco escreveu:Hm, não sei como o Game Maker verifica se apertou OK ou Cancelar nesse método :/

Vou pensar em outra maneira de fazer isso.
Muito obrigada!!!
tha.sribeiro
tha.sribeiro

Data de inscrição : 30/08/2014
Reputação : 0
Número de Mensagens : 14
Prêmios : Help! - Show message 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

Help! - Show message Empty Re: Help! - Show message

Mensagem por matheusco Dom 31 Ago 2014, 14:05

De nada Happy
matheusco
matheusco

Data de inscrição : 10/08/2014
Reputação : 51
Número de Mensagens : 395
Prêmios : Help! - Show message Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 0

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

http://www.tutoriaisgamemaker.com.br

Ir para o topo Ir para baixo

Help! - Show message Empty Re: Help! - Show message

Mensagem por Igor KinGamer Dom 31 Ago 2014, 16:05

Usando get_string, você pode testar se o valor retornado é uma string nula (get_string(...) == "", pelo menos é o que é retornado aqui ao cancelar). Se usar get_integer, como o Isaque Onix sugeriu, o único jeito é testar se o valor retornado é igual ao valor padrão (que teria que ser um valor negativo, como qualquer outro teoricamente é possível).

Se o resultado do teste for verdadeiro (uma string nula ou o valor padrão), exit. Esse comando sai na hora do script/piece of code que está sendo executado. Por exemplo:

Código:
var valor;
valor = get_string("Quantas pessoas moram na sua casa?", "");
if (valor == "")
    exit; // Para tudo
mora = real(valor);
... // Usa o valor de "mora"
valor = get_string("Quantas TVs grandes tem na sua casa?", "");
if (valor == "")
    exit;
tv1 = real(valor);
... // Usa o valor de "tv1"

Sobre o 'var valor':

O help do GMS diz que get_string e get_integer são apenas para debug (portanto, não indicam se clicou em ok ou cancel), e que no projeto final não devem ser usadas, mas sim get_string_async e get_integer_async em vez delas. Com essas funções, dá para saber se foi apertado ok ou cancel, mas elas são um pouco mais complicadas: elas não travam o resto do jogo e retornam o valor de um jeito diferente, por meio do evento Asynchronous > Dialog.

Se quiser usar, pode ler mais sobre elas no help, mas como você "nunca fiz nada no Game Maker e tenho pouca experiencia em programação", talvez não seja uma boa ideia... Mas não vou dizer que você não vá conseguir. Very Happy

Até explicaria como usar, mas não tenho tempo... =/
Igor KinGamer
Igor KinGamer

Data de inscrição : 26/09/2008
Reputação : 11
Número de Mensagens : 890
Prêmios : Help! - Show message 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

Help! - Show message Empty Re: Help! - Show message

Mensagem por tha.sribeiro Seg 01 Set 2014, 12:37

Igor KinGamer escreveu:Usando get_string, você pode testar se o valor retornado é uma string nula (get_string(...) == "", pelo menos é o que é retornado aqui ao cancelar). Se usar get_integer, como o Isaque Onix sugeriu, o único jeito é testar se o valor retornado é igual ao valor padrão (que teria que ser um valor negativo, como qualquer outro teoricamente é possível).

Se o resultado do teste for verdadeiro (uma string nula ou o valor padrão), exit. Esse comando sai na hora do script/piece of code que está sendo executado. Por exemplo:

Código:
var valor;
valor = get_string("Quantas pessoas moram na sua casa?", "");
if (valor == "")
    exit; // Para tudo
mora = real(valor);
... // Usa o valor de "mora"
valor = get_string("Quantas TVs grandes tem na sua casa?", "");
if (valor == "")
    exit;
tv1 = real(valor);
... // Usa o valor de "tv1"

Sobre o 'var valor':

O help do GMS diz que get_string e get_integer são apenas para debug (portanto, não indicam se clicou em ok ou cancel), e que no projeto final não devem ser usadas, mas sim get_string_async e get_integer_async em vez delas. Com essas funções, dá para saber se foi apertado ok ou cancel, mas elas são um pouco mais complicadas: elas não travam o resto do jogo e retornam o valor de um jeito diferente, por meio do evento Asynchronous > Dialog.

Se quiser usar, pode ler mais sobre elas no help, mas como você "nunca fiz nada no Game Maker e tenho pouca experiencia em programação", talvez não seja uma boa ideia... Mas não vou dizer que você não vá conseguir. Very Happy

Até explicaria como usar, mas não tenho tempo... =/

Hey, deu certo!!!! Muito obrigada Happy
tha.sribeiro
tha.sribeiro

Data de inscrição : 30/08/2014
Reputação : 0
Número de Mensagens : 14
Prêmios : Help! - Show message 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

Help! - Show message Empty Re: Help! - Show message

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