Portuguese Spain English Japanese




11 de jul. de 2011

Como e quando usar alarms

ALARMS


O QUE SÃO?
Alarm é um evento que é executado depois de um tempo. Para entender melhor você pode compara-lo com uma bomba relógio que depois de um tempo programado pelo terrorista (você) ela explode (faz o que você quer).
Na versão 8.0 do GM você tem 12 alarms por objeto para usar e abusar, começando de 0 a 11.



COMO USO ALARMS?
Para que os alarms funcionem primeiro você precisa pensar o tempo que vai demorar para ele acontecer e quando vai começar a contar este tempo. Por exemplo, se você quer que o alarm 0 execute depois de 10 segundos começando a contar quando o objeto foi criado, você deve colocar o código no create do objeto:
alarm[0]=10*room_speed;

Para quem não sabe, room_speed é igual a 1 segundo no jogo, então basta multiplicarmos os segundos que queremos pela room_speed.
Se você estiver usando outro alarm basta trocar o número que está entre os colchetes.

Nosso alarm já ta programado para acontecer depois de 10 segundos que o objeto foi criado, mas quando o tempo acaba ele ainda não faz nada, esse é o segundo passo para se usar um alarm. No nosso exemplo quando o tempo acabar o alarm vai criar um objeto qualquer e colocar o alarm a voltar acontecer depois de 15 segundos.
Para isso criamos o evento do alarm (Add Event > Alarm > 0 ):

Expandir esta imagemReduzir esta imagem Ver em tamanho real


Dentro do evento vamos adicionar o seguinte código:

instance_create(x,y,obj_qualquer) alarm[0]=15*room_speed;


DESATIVANDO UM ALARM
Para desativar um alarm basta setá-lo como -1. Ex:

alarm[0]=-1;


CUIDADO COM ALARMS EM EVENTOS QUE SE REPETEM (STEP, DRAW, ETC)
É preciso tomar cuidado em setar alarms em eventos que se repetem porque eles irão ficar setando o step a todo momento. Por exemplo:
No Step você coloca:

alarm[0]=10*room_speed;

Quando o alarm[0] for diminuir, o step vai executar de novo e "falar" que ele é igual a 10*room_speed. Isso vai acontecer sempre fazendo com que o alarm nunca execute. Uma solução é colocar o cidgo dentro de um if, por exemplo:

if (contar_alarm==true) { alarm[0]=10*room_speed; contar_alarm=false; }

Quando o Step for executar de novo contar_alarm vai ser igual a false e o alarm não será setado.

QUANDO USO ALARMS?
Os alarms podem ser usados para várias coisas relacionadas a tempo dentro de um jogo. Eu irei explicar como usar o alarm para criar um relógio com contagem regressiva e como fazer ganhar uma vida de 30 em 30 segundos.
Para criar um relógio com minutos e segundos precisamos declarar a variável minutos no create:

minutos=5;//coloque os minutos que você quer que comece

Você deve estar se perguntando, e os segundos? Para os segundos vamos usar o próprio alarm. Para isso vamos setar o alarm[0] para disparar depois de 60 segundos. Para isso coloque depois do código acima:

alarm[0]=60*room_speed;


Adicione o evento alarm 0 e nele coloque o código:

minutos-=1; alarm[0]=60*room_speed;//começa os segundos de novo


Agora só falta mostrar na tela, colocando no draw:

draw_text(x,y,string(minutos)+":"+string(floor(alarm[0]/room_speed)));




Para criar um sistema que ganha uma vida de 30 em 30 segundos colocamos no create:

alarm[1]=30*room_speed; global.vidas=3;


Crie um evento alarm 1 e coloque nele:

global.vidas+=1; alarm[1]=30*room_speed;

VÍDEO


CONCLUSÃO
Bom pessoal espero que vocês tenham aprendido com o tutorial e estou aberto a sugestões, criticas e dúvidas.

Nenhum comentário:

Postar um comentário