Autor: CLT
Plataforma: GM PRO/LITE
Nível: Iniciante
Introdução
Alarms como o próprio nome diz, são como relógios, que após um determinado tempo dispara, ocorrendo uma determinada ação.
Esse evento é muito utilizado em jogos de estratégia, como o jogo Roma.
Exemplo:
Crie um objeto e chame de obj_controle.
No Create deste objeto coloque:
Código: Selecionar todos
pontos=0
alarm[0]=1*room_speed
Toda vez que obj_controle for criado o alarm 0 será ativado e seus pontos serão 0.
No evento Alarm 0 coloque:
Código: Selecionar todos
pontos+=1
alarm[0]=1*room_speed
A cada 1 segundo os pontos do obj_controle aumentarão em 1 e o alarm 0 será reativado, então a cada 1 segundo os pontos aumentarão em 1.
No evento Draw coloque:
Código: Selecionar todos
draw_text(32,32,"Pontos: "+string(pontos))
Desenha os pontos em uma altura de 32 pixels e uma largura também de 32 pixels.
Coloque o objeto na room e teste. Se tudo foi feito certo à cada 1 segundo os pontos aumentarão em 1.
Calcular o tempo:
Para calcular o tempo, existem duas formas:
1°
Código: Selecionar todos
alarm[n°]=n°*room_speed
Código: Selecionar todos
alarm[n°]=n°
No 1° jeito, você coloca os segundos desejados, vezes a room_speed.
No 2° jeito, você tem que saber o room_speed para fazer, por exemplo se a room_speed for 60, você faz alarm[n°]=60. Então dará 1 segundo.
Usando mais de um Alarm:
Quando se está programando com Alarms, você pode adicionar até 12 Alarms, que vão de 0 a 11.
Exemplo:
Se você fez a primeira parte do tutorial, já poderá aproveitar para está parte.
Coloque no Create:
Código: Selecionar todos
alarm[1]=5*room_speed
Após 5 segundos da criação do obj_controle, o Alarm 1 será ativado:
Coloque no evento Alarm 1:
Código: Selecionar todos
pontos*=2
alarm[1]=5*room_speed
A cada 5 segundos os pontos são multiplicados por 2, e o Alarm 1 é reativado.
Ativando um Alarm através de outro objeto:
No obj_controle (mesmo de sempre) coloque no Alarm 2:
Código: Selecionar todos
pontos-=5
alarm[2]=3*room_speed
Quando o Alarm 2 for ativado, a cada 3 segundos os pontos diminuíram em 5 pontos, e o Alarm 2 será reativado.
Crie um novo objeto e chame de obj_ativador.
No Step coloque:
Código: Selecionar todos
if keyboard_check_pressed(vk_space)
{
obj_controle.alarm[2]=3*room_speed
}
Quando a tecla "space/espaço" for pressionada, o Alarm 2 do obj_controle será ativado.
Agora coloque os objetos na room e teste.