[Resolvido] Como fazer um cronômetro de contagem regressiva?

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Resolvido [AJUDA] Como fazer um cronômetro de contagem regressiva?

Mensagem por evertonR.2011 em Qua 01 Fev 2012, 17:28

Olá, eu estou com um problema Exclamation Eu gostaria de saber como fazer um cronômetro de contagem regressiva com minutos e segundos Exclamation Eu já procurei aqui na GMBR, mas não tive resultados satisfatórios Exclamation Agradeço a todos que ajudarem Exclamation

Editado por Joton
Use letras coloridas apenas para destacar algo importante

evertonR.2011

Ranking : Nota C
Número de Mensagens : 23
Idade : 18
Data de inscrição : 23/08/2011
Notas recebidas : C
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido] Como fazer um cronômetro de contagem regressiva?

Mensagem por vinians em Qua 01 Fev 2012, 17:42

Pode ser assim:
NO evento CREATE:
Código:

min = 30;
seg = 60;
alarm[0] = room_speed; //1 segundo
NO Evento alarm[0]
Código:

seg -= 1;
if (seg < 0)
{
  seg = 60;
  if (min > 0) min -= 1;
}
alarm[0] = room_speed;// 1 segundo
No Evento Draw()
Código:

draw_text(x, y, string(min) + ":" + string(seg));
É isso ai !
Flws

vinians

Ranking : Nota B
Número de Mensagens : 2490
Idade : 27
Data de inscrição : 18/09/2008
Notas recebidas : B-C-A-C
Reputação : 52
Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 1

http://xcreatorgames.weebly.com/

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido] Como fazer um cronômetro de contagem regressiva?

Mensagem por saim em Qua 01 Fev 2012, 18:00

Ou:
create
Código:
tempo = numeroDeSegundos * fps;
alarm[0] = tempo;
draw
Código:
draw_text(x, y, string(alarm[0] div (60 * fps)) + ":" + string((alarm[0] mod (60 * fps)) div fps));
(lembrando-se de colocar pelo menos um comentário no alarm)

Edit: Se for usar o do vinians, troque o "60" por "59", no alarm.

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido] Como fazer um cronômetro de contagem regressiva?

Mensagem por Mannoroth em Qua 01 Fev 2012, 18:09

eu tenho um projeto completo de cronometro incluindo nele o regressivo, tem os botoes pro usuario definir facilmente os minutos, horas e segundos que quer. se quiser te mando a engine pra tu estudar.

Mannoroth

Ranking : Nota D
Número de Mensagens : 836
Idade : 26
Data de inscrição : 05/10/2010
Notas recebidas : D+D
Reputação : 12
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido] Como fazer um cronômetro de contagem regressiva?

Mensagem por evertonR.2011 em Qui 02 Fev 2012, 16:37

Era exatamente isso que eu queria, mas quando chega em menos de 10 segundos, ele faz :9 em vez de :09. Como faço para acrescentar o 0 na frente do 9 Question

evertonR.2011

Ranking : Nota C
Número de Mensagens : 23
Idade : 18
Data de inscrição : 23/08/2011
Notas recebidas : C
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido] Como fazer um cronômetro de contagem regressiva?

Mensagem por Pit Bull em Qui 02 Fev 2012, 16:42

if seg<10 //se ele for menor que 10
{
seg=real(0)+seg
}
não sei se funciona com real,tenta ae!

Pit Bull

Número de Mensagens : 630
Idade : 21
Data de inscrição : 31/08/2010
Reputação : 15
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://leninja.com.br

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido] Como fazer um cronômetro de contagem regressiva?

Mensagem por saim em Sex 03 Fev 2012, 08:55

Teoricamente, você teria que usar string_format no lugar de string.
Mas eu testei aqui e não funcionou. Suponho que eu não esteja sabendo usar a função.

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido] Como fazer um cronômetro de contagem regressiva?

Mensagem por Markituh em Sex 03 Fev 2012, 09:56

Pit Bull escreveu:if seg<10 //se ele for menor que 10
{
seg=real(0)+seg
}
não sei se funciona com real,tenta ae!
Isso não vai dar certo. "09" e "9" são praticamente a mesma coisa, o número 9, pois é um número e não uma string.
saim escreveu:Teoricamente, você teria que usar string_format no lugar de string.
Mas eu testei aqui e não funcionou. Suponho que eu não esteja sabendo usar a função.
string_format é um pé no saco mesmo. A única maneira plausível de formatar seria esta:
Código:
var h, m, s;
// horas = variável das horas
// minutos = variável dos minutos
// segundos = variável dos segundos

if horas >= 0 and horas <= 9
    h = string(0) + string(horas)
else
    h = string(horas)

if minutos >= 0 and minutos <= 9
    m = string(0) + string(minutos)
else
    m = string(minutos)

if segundos >= 0 and segundos <= 9
    s = string(0) + string(segundos)
else
    s = string(segundos)

draw_text( x, y, string(h) + ":" + string(m) + ":" + string(s) );
PS.: O código é no Draw
Bons estudos ;)

___________

"Não deixe para amanhã o que se pode fazer hoje"

Links úteis:
Índice de Tutoriais
Manual online do GMS

Markituh

Ranking : Sem avaliações
Número de Mensagens : 2183
Data de inscrição : 11/10/2009
Reputação : 106
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido] Como fazer um cronômetro de contagem regressiva?

Mensagem por vinians em Sex 03 Fev 2012, 10:11

Eu geralmente uso um script que criei chamado PadZero(string, n) onde n seria o numero de casas. Veja:
Código:

var str, tam;
str = argument0;
tam = argument1;
while (string_length(str) < tam)
{
    str = "0"  + str;
}
return str;
Para utilizar, crie um novo script e coloque o nome dele de PadZero. Depois basta usa-lo assim:
Código:

draw_text(x, y, PadZero(string(min), 2) + ":" + PadZero(string(seg),2));
Flws!

vinians

Ranking : Nota B
Número de Mensagens : 2490
Idade : 27
Data de inscrição : 18/09/2008
Notas recebidas : B-C-A-C
Reputação : 52
Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 1

http://xcreatorgames.weebly.com/

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido] Como fazer um cronômetro de contagem regressiva?

Mensagem por evertonR.2011 em Sex 03 Fev 2012, 16:40

Muito obrigado vinians, eu usei o seu código e funcionou perfeitamente, só substitui uma coisa:

DRAW

Código:
draw_text(x, y, PadZero(string(min), 1) + ":" + PadZero(string(seg),2));

Em vez de colocar 2, eu coloquei 1, apesar de não ter entendido o código; porque com 2 aparecia dois 0, mas com 1 apareceu um 0 [nos minutos].

A dúvida foi resolvida Exclamation Exclamation

evertonR.2011

Ranking : Nota C
Número de Mensagens : 23
Idade : 18
Data de inscrição : 23/08/2011
Notas recebidas : C
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido] Como fazer um cronômetro de contagem regressiva?

Mensagem por Conteúdo patrocinado Hoje à(s) 04:03


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum