Adicionando tempo ao Game

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

Qualidade Adicionando tempo ao Game

Mensagem por Convidad em Sab 14 Jun 2008, 20:54

Colocando tempo no game

O Game Maker conta com uma gama enorme de funções para manipular o tempo do sistema e fazer cálculos de tempo. Para adicionar função de tempo ao Game é bem simples. Algumas dessas rotinas abaixo vão ajudar, mas atenção porque isso não são variáveis, ok?

Antenção, pois isso é um tutorial para tempo, não para cronômetro. Um cronômetro deve ser feito da forma como fez KingKing.

current_time
Este valor é o número em milisegundos que se passaram após a inicialização do sistema.

current_hour
Esse valor retorna a hora atual.

current_minute
Esse valor retorna o minuto atual.

current_second
Retorna o segundo no momento.

Essas são apenas algumas das funções. Quando fiz o "Ministicker Cronos" e o "InitCd Player" (ambos feitos no Game Maker), usei outras também que são úteis para interagir com a área de transferência, calcular data com base no tempo, alarmes, ,linhas de tempo (timelines), etc. Então se alguém tiver alguma dúvida quanto à isso, poste aqui no fórum.

Passo a passo:

1 - Crie um objeto para que possamos dedicá-lo somente ao cálculo de tempo. Dessa forma, ele não vai ter nenhum tipo de rotinas como sleep, while ou until (rotinas que chamamos de "egoístas").

No evento Create, vamos criar uma variável do tipo array que vai nos auxiliar.


Código:
tempo[0]:=0; // essa variável será responsável pelos segundos.
tempo[1]:=0; // essa vai ser responsável pelos minutos.
tempo[2]:=0; // horas.
segundos:=current_second; // essa variável, vamos usar para comparar o tempo.


2 - No evento Step (ou Draw se preferir), insira esse código abaixo:


Código:
for (i=0 ; segundos <> current_second; i+=1)
{
switch (i)
    {
    case (0): tempo[i]+=1; break;
    case (1): segundos := current_second; break;
    }

if tempo[i] > 59 then
    {
    tempo[i]:=0;
    tempo[i+1]+=1;
    }
}


Pronto! Agora você tem um contador de tempo com horas, minutos e segundos que vai funcionar corretamente, independente da quantidade de objetos na sala, velocidade do processador, velocidade da room, quantidade de programas abertos, etc.

Esse contador vai funcionar fazendo comparativos de segundos com a hora do sistema. Lembrando que para "desenhar" a variável na tela, você deve convertê-la em string (como qualquer outra variável numérica). Por exemplo:

Código:
string(tempo[0]);

Convidad
Convidado


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