30 de agosto de 2014

Alarmes e Temporizadores

Os alarmes são funções próprias do Game Maker que são ativadas de acordo com uma contagem regressiva determinada pelo usuário. Há diversas maneiras para se utilizar os alarmes, portanto este tutorial tem como objetivo mostrar alguns exemplos e ensiná-los a criar seus próprios temporizadores.

O Game Maker disponibiliza 12 alarmes (de 0 a 11) por instância. Para usá-los basta adicionar o Alarm Event ao objeto e colocar o código desejado. Depois usamos o código alarm[n] = m no Create Event sendo n o número do alarme e m o "tempo" em steps que o alarme levará para ativado.

Exemplo:

Create Event

alarm[2] = room_speed*5

Alarm 2 Event:

show_message("Tempo Esgotado!")

Dica: Quando quiserem definir o tempo de espera em segundos basta multiplicar a quantidade de segundos que deseja pela room_speed, assim teremos a quantidade correta de steps necessários sem precisar fazer muita conta. Outra vantagem deste método é que, se um dia vocês quiserem trocar o valor da room_speed, não precisarão alterar todas linhas de códigos para reajustar o tempo. Neste exemplo o Alarm 2 Event será ativado após 5 segundos e depois não será mais utilizado. Para tornar o alarme recorrente devemos redefinir o tempo de ativação dentro do próprio alarme, po exemplo:

Create Event

alarm[2] = room_speed*5

Alarm 2 Event:

show_message("Tempo Esgotado!")
alarm[2] = room_speed*5

Dessa maneira a contagem regressiva será reativada logo após a ativação do alarme.

Podemos utilizar alarmes para criar cooldown em ataques/magias, atualizar alguma informação do jogo que não precisa ser atualizada todo step, criar objetos temporários, powerups temporários, entre outros. Use sempre que considerar útil pois algumas funções, quando executadas todo instante, causam grande perda de memória e deixam seu jogo extremamente lento.

Também podemos criar nossos próprios temporizadores que, na minha opinião, são mais fáceis de controlar do que os alarmes. Para isso basta criarmos a variável que utilizaremos como temporizador e utilizá-la onde quisermos.

Exemplo:

Create Event:

tempo_boladefogo = 0
level = 0

Step Event:

tempo_boladefogo += 1

if keyboard_check_pressed(ord('D')) && tempo_boladefogo >= 2*(room_speed - level)
{
   instance_create(x, y, obj_boladefogo)
   tempo_boladefogo = 0
}

Neste exemplo criamos o temporizador para a magia "bola de fogo" e definimos que, se a letra D for pressionada e o valor de tempo_boladefogo for maior ou igual que 2*(room_speed - level), a bola de fogo será criada e o temporizador reiniciado. Percebam que se o "level" do jogador fosse maior que 0 o tempo de espera para poder lançar outra bola de fogo seria reduzido.


Um comentário :

  1. titanium alloy
    Titanium is titanium hair straightener the world's first copper oxide catalyst, and used ford fusion titanium it is a platinum-carbon titanium hair trimmer catalyst. Its primary use for building high performance manufacturing materials is Materials: titanium titanium ore terraria alloy, 2018 ford ecosport titanium copper oxideCapsicum frutesium ore

    ResponderExcluir