[Resolvido]Contagem regressiva com reiniciar

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

[Resolvido]Contagem regressiva com reiniciar

Mensagem por carlos.souza.921230 em Dom 24 Fev 2013, 11:46

Galera, achei esse link onde explica (http://gmbr.forumeiros.com/t7668-cronometro-de-contagem-regressiva?highlight=Contagem+regressiva), mas eu não sei oq colocar pro jogo reiniciar ao final da contagem REGRESSIVA.
Podem me ajudar?

carlos.souza.921230

Número de Mensagens : 2
Data de inscrição : 24/02/2013
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: [Resolvido]Contagem regressiva com reiniciar

Mensagem por Dr.XGB em Dom 24 Fev 2013, 13:00

Vamos recapitular o que fora feito no tópico que você citou:

Vamos supor que você criou um objeto chamado obj_tempo, criaremos então os eventos e seus respectivos comandos e vamos acionar um alarme com o valor da room_speed (lembrando que para inserir um código, é só arrastar a ação "Execute a piece of code" para o objeto).

Evento Create:

Neste evento, vamos declarar as variáveis que determinarão o tempo antes da contagem regressiva
Código:
/* Não chamei a variável dos minutos de 'min' porque existe uma função com este nome, que encontra o menor número entre os argumentos colocados nela, mas isso não vem ao caso. Portanto, escreva qualquer coisa, menos 'min', ok?*/

mn = 5        //minutos
sec = 30    // segundos
alarm[0] = room_speed

Evento Alarm 0:

Declaradas as variáveis no evento "Create", criaremos o evento "Alarm 0", que foi colocado no "Create" com o valor de room_speed
Vamos lembrar que 1 segundo equivale à quantidade de frames em relação à room_speed. Seu valor padrão é 30. Portanto 1 segundo equivale a 30 frames neste caso, mas essa variável pode ser alterada.
Código:
if sec < 0 {
            mn -= 1
            sec = 59
          }
          else {sec -= 1}

Evento Step:

Este evento ocorrerá a cada frame corrido no jogo. Lembre-se que alarme, quando acionado, ele vai subtraindo-se por 1 a cada frame até chegar ao seu valor inicial, que é -1. Depois disso o evento do alarme não acionará mais. Então teremos de ativá-lo de novo:
Código:
if alarm[0] == -1 then alarm[0] = room_speed
Nele vamos também, finalmente, responder a sua pergunta. Criaremos uma condição dizendo se os minutos e os segundos chegaram ao valor de 0, logo o jogo reiniciará com um comando chamado game_restart(). Veja:
Código:
if mn == 0 and sec == 0 {game_restart()}

Não se esqueça, é claro, de desenhar o tempo na tela do seu jogo.

Evento Draw:

Aqui nós vamos fazer o relógio aparecer a tela, desenhando as variáveis que você declarou no evento "Create". Lembrando que este comando pode ser aprimorado, é apenas uma ideia, pois provavlemente, você pode querer fazer o relógio com 2 dois dígitos na unidade de tempo dos segundos:

Código:
draw_text(120,120,mn)
draw_text(132,120,':')
// Deixar os segundos sempre com 2 dígitos, mesmo abaixo de 10
if sec < 10 {
              draw_text(136,120,0)
              draw_text(144,120,sec)
            }
            else{draw_text(136,120,sec)}

Lembrando, é claro, que as coordenadas x e y do texto ficam à sua vontade.

Espero ter te ajudado. Qualquer coisa é só falar aqui no fórum que a gente te dá uma força Happy

Dr.XGB

Ranking : Nota B
Número de Mensagens : 54
Idade : 25
Data de inscrição : 22/02/2013
Notas recebidas : B
Reputação : 2
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 1
   : 0

Voltar ao Topo Ir em baixo

Re: [Resolvido]Contagem regressiva com reiniciar

Mensagem por carlos.souza.921230 em Dom 24 Fev 2013, 16:14

Vlw Cara! Ja tava a um tempão atrás desta ajuda. É para um trabalho de escola :DD

carlos.souza.921230

Número de Mensagens : 2
Data de inscrição : 24/02/2013
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: [Resolvido]Contagem regressiva com reiniciar

Mensagem por Conteúdo patrocinado Hoje à(s) 22:17


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