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
» player não consegue andar
por lovn7 Qui 21 Nov 2024, 13:33

» É possível fazer istó no game maker
por William Lima Qui 21 Nov 2024, 10:56

» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por Lua Sáb 16 Nov 2024, 20:22

» (Resolvido) Cenario longo x Texture Pages
por josuedemoraes Sáb 16 Nov 2024, 15:31

» Kids' band
por Adilson Lucindo Santos Sex 15 Nov 2024, 12:23

» (RESOLVIDO) Engasgos-Troca de Sprites/animações
por josuedemoraes Ter 12 Nov 2024, 01:49

» Block Room - DEMO
por Joton Qua 06 Nov 2024, 22:58

» Game Infinito vertical (subindo)
por macmilam Sáb 26 Out 2024, 12:36

» Retorno da GMBR!!!
por Dancity Ter 22 Out 2024, 16:36

» Máquina de estados
por aminaro Qui 10 Out 2024, 13:33

» como faço pra um objeto colidir com o outro e diminuir a vida do player ?
por josuedemoraes Qui 03 Out 2024, 16:51

» RESOLVIDO: Colisão com objetos moveis
por josuedemoraes Qua 02 Out 2024, 20:28

» Crypt of the Blood Moon
por divin sphere Qua 11 Set 2024, 18:18

» como fazer um objeto seguir?
por divin sphere Dom 18 Ago 2024, 18:08

» Procuro de alguém para Modelar/Texturizar/Animar objetos 3D
por un00brn Dom 11 Ago 2024, 11:10

» Destruição de cenário (estilo DD Tank)
por CoronelZeg Sex 09 Ago 2024, 17:16

» RESOLVIDO-Como destruir uma instancia especifica de um objeto
por josuedemoraes Ter 23 Jul 2024, 00:40

» Automatizar a coleta de id
por GabrielXavier Seg 22 Jul 2024, 18:01

» Preciso de ajuda para concluir um pequeno projeto
por lmoura Qui 27 Jun 2024, 15:45

» ANGULO ACOMPANHAR O OBJETO
por Klinton Rodrigues Qui 27 Jun 2024, 08:34

» Musica reinicia quando sala reinicia
por GabrielXavier Ter 18 Jun 2024, 07:28

» como fazer uma copia de gd
por generico_cube Sex 14 Jun 2024, 15:48

» Square Adventure
por guilherme551 Ter 11 Jun 2024, 09:54

» como posso definir limite de uma variavel
por GabrielXavier Sex 07 Jun 2024, 14:14

» [Resolvido] Dúvida, colisão única de objeto
por vdm842 Sex 24 maio 2024, 09:50


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 : 1626
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