Entrar
Últimos assuntos
» Problema ao entrar por uma porta e voltar por elapor aminaro Seg 06 maio 2024, 10:08
» Alguém aqui já ganha dinheiro com seus games?
por theguitarmester Ter 30 Abr 2024, 11:43
» Colisões não funcionando
por theguitarmester Ter 30 Abr 2024, 10:16
» 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
» ACERVO GMBR MAGAZINE
por Joton Qui 11 Jan 2024, 19:21
Help! - Show message
4 participantes
Página 1 de 1
Help! - Show message
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!)
Link para o jogo, caso queiram visualizar. (Não reparem nos erros, preciso ajusta-lo!)
tha.sribeiro- Data de inscrição : 30/08/2014
Reputação : 0
Número de Mensagens : 14
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Help! - Show message
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;
}
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;
}
Re: Help! - Show message
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
(Não tem mais show message porque preciso guardar os valores )
tha.sribeiro- Data de inscrição : 30/08/2014
Reputação : 0
Número de Mensagens : 14
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Help! - Show message
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.
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.
Re: Help! - Show message
bom, ainda nao intendi oque voce quer, mais voce pode, primeiramente, trocar:
e no final do switch sempre coloque a funç. default... ela evita erros no seu projeto!
- Código:
mora =
real(get_string("Quantas pessoas moram na sua casa?", ""));
- 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!
Re: Help! - Show message
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- Data de inscrição : 30/08/2014
Reputação : 0
Número de Mensagens : 14
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Help! - Show message
Isaque Onix escreveu:bom, ainda nao intendi oque voce quer, mais voce pode, primeiramente, trocar:Por
- Código:
mora =
real(get_string("Quantas pessoas moram na sua casa?", ""));
- 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- Data de inscrição : 30/08/2014
Reputação : 0
Número de Mensagens : 14
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Help! - Show message
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.
Re: Help! - Show message
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- Data de inscrição : 30/08/2014
Reputação : 0
Número de Mensagens : 14
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Help! - Show message
Hm, não sei como o Game Maker verifica se apertou OK ou Cancelar nesse método :/
Re: Help! - Show message
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- Data de inscrição : 30/08/2014
Reputação : 0
Número de Mensagens : 14
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Help! - Show message
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:
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.
Até explicaria como usar, mas não tenho tempo... =/
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 "var" em "var valor;" declara a variável como local, ou seja, ela vai existir apenas durante esse script/evento e depois desaparecer. É uma boa prática usar var para variáveis que só são necessárias na hora (como a "valor", que só é usada para o teste).
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.
Até explicaria como usar, mas não tenho tempo... =/
Igor KinGamer- Data de inscrição : 26/09/2008
Reputação : 11
Número de Mensagens : 890
Prêmios :
x 0 x 1 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Help! - Show message
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 "var" em "var valor;" declara a variável como local, ou seja, ela vai existir apenas durante esse script/evento e depois desaparecer. É uma boa prática usar var para variáveis que só são necessárias na hora (como a "valor", que só é usada para o teste).
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.
Até explicaria como usar, mas não tenho tempo... =/
Hey, deu certo!!!! Muito obrigada
tha.sribeiro- Data de inscrição : 30/08/2014
Reputação : 0
Número de Mensagens : 14
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Tópicos semelhantes
» show message
» Tem como mudar as palavras do Show Message ou Show Question para "Sim" ou "Não" ao invés de "Yes" e "Not"????
» [RESOLVIDO] Ajudem show message no esc
» Show-Message-ext execultada por uma global
» show message- meu problema tem solução?
» Tem como mudar as palavras do Show Message ou Show Question para "Sim" ou "Não" ao invés de "Yes" e "Not"????
» [RESOLVIDO] Ajudem show message no esc
» Show-Message-ext execultada por uma global
» show message- meu problema tem solução?
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos