Este é o meu primeiro tutorial como colaborador, e o tema deste tutorial será aprender a usar alarms!
Muita gente por aqui tem dificuldades em entender como usar os alarms, neste tutorial, vou ensinar o que é um alarm e como usar.
Primeiramente, vamos a parte teórica da aula.
Um alarm tem a função de um alarme (sério?), ou seja, você ajusta um "horário" e quando o a hora atual for igual a hora que você ajustou, ele faz sua função, ou seja, faz um barulho irritante e voa para a parede. Basicamente, isso é um alarme.
O Game Maker disponibiliza até 12 alarmes para serem usados, sendo que vai desde o “0” até o “11”. Recomendo que sempre use os alarmes na ordem. Por exemplo, se precisar usar 3 alarmes, não use o alarm[7], alarm[2] e o alarm[10], isso vai complicar sua vida. Use de forma gradual, ou seja, alarm[0], alarm[1] e alarm[2].
Vamos a parte prática agora. Pra começar, algo muito simples. Ativar um alarm no create.
Crie um objeto (com qualquer sprite) e no evento Create, coloque:
Código: Selecionar todos
alarm[0]=30*3
Código: Selecionar todos
Instance_destroy()
Ai você vai, coloca isso no step e...
Muito simples, o evento step executa os códigos constantemente, ou seja, a cada frame, vai mudar o valor do alarm, ou seja, ele SEMPRE vai fiar 90._Caramba! Não funciona? Porqueeeeeeeeeeeeeeeeeeeeeee?
E nesse ponto que o pessoal declara:
As pessoas vêem o alarm como um bicho de 84 cabeças (7 cabeças por alarm ), mas depois que descobrem a coisa simples que direi agora, tudo fica fácil (eu acho). O segredo é muito simples, é o uso de variáveis!_É, eu não sei usar alarms.
Com a variável, eu posso checar se o alarm já foi ativado ou não!
Vamos fazer um exemplo pratico com o uso de alarm no step.
Crie dois sprites, uma bolinha pequena e uma grande. Marque a "origin" dos sprites como "center" .
Agora, crie um objeto para a bolinha grande. Chame-a como quiser.
Primeiramente, coloque no campo "depth" o valor "-1" para que fique sobre as bolinhas que esse objeto vai criar.
No create dela, iremos criar uma variável:
Código: Selecionar todos
atirou=false
Agora, no step, vamos colocar isso:
Código: Selecionar todos
if atirou=false{//Se não tiver atirado
alarm[0]=15 //Ativa o alarme (1/2 de segundo)
atirou=true //Diz que atirou¹
}
//1: Isso impede que o alarme não fique sempre 15!
No alarm[0], você coloca isso:
Código: Selecionar todos
instance_create(x,y,obj_bola_pequena)//Cria o objeto bola_pequena quando o alarme for ativado.
atirou=false//Torna possível atirar novamente
Pronto, o seu sistema de alarm já esta funcionando. Porém, se executar assim, vai perceber que as bolinhas não se mechem. Mas por quê? Porque não definimos uma função para a bolinha fazer. Vamos fazer algo bem simples, vamos fazer ela correr em uma direção aleatória.
No create do "obj_bola_pequena", coloque isso:
Código: Selecionar todos
//Aqui vamos definir a função da bolinha, que no caso, é andar para uma direção aleatória.direction=random(360)//¹
speed=10//Velocidade da bolinha
Nesse caso, estamos definindo a direção dela usando a função random (aleatório) em 360.
Speed é a velocidade da bolinha.
Não se esqueça de colocar isso no "outiside room":
Código: Selecionar todos
instance_destroy()//Se destruir ao sair da room
Você podem baixar o .gmk do tutorial clicando aqui! (MediaFire)
[EDITADO]
A pedido do saim preparei mais um exemplo para vocês verem como é a "contagem regressiva" do alarm. Não sei se funciona no lite, se alguém testar no lite e funcionar ou não, me avisem.
Primeiramente, crie mais um objeto, e no create, coloque:
Código: Selecionar todos
alarm[0]=30 //1 segundo
Código: Selecionar todos
alarm[0]=30//1 segundo
Agora que vem a parte legal, no evento draw, coloque:
Código: Selecionar todos
draw_rectangle(x+alarm[0],y+alarm[0],x-alarm[0],y-alarm[0],true)
Obs.: Ao usar DRAW, o sprite do objeto não aparece.
Testem e vejam o resultado (ficou bonitinho)!
Espero que tenham gostado e entendido!
Duvidas é só falar!