Outro tipo de evento bastante útil para o desenvolvimento de jogos são os eventos temporizados, que permitem chamar uma função em tempo bem definido e podendo, por exemplo, fazer surgir na tela alvos a cada 2 segundos.
A criação de um evento temporizado inicia com a criação do temporizador. Isso é feito através da classe “Timer” ilustrada na instrução abaixo. Para a instanciação foi realizada utilizando dois parâmetros, onde no primeiro é passado um valor em milissegundos e representa o tempo de intervalo do temporizador. O segundo parâmetro é opcional e representa quantas vezes o temporizador irá repetir e se for omitido fará a chamada por tempo indeterminado.
Para mostrar o uso, vamos criar uma função que gera uma contagem regressiva, onde a cada repetição irá descontar um segundo da contagem. Foi criado um contador e na função esse contador é diminuído e depois mostrado na área de output.
Tendo definida a função, é preciso adicionar um ouvinte nesse timer, fazendo a chamada para a função criada e depois inicializar o timer. As instruções a seguir realizam essas duas tarefas.
Observe que o contador assumirá os valores 4, 3, 2, 1 e 0, parando logo em seguida já que o timer foi definido para ser repetido 4 vezes. Experimente retirar o segundo parâmetro na criação do timer e o que se terá é a execução constante da função, fazendo o contador assumir valores negativos. Uma alternativa para parar a execução do temporizador é utilizar o método stop(). O código a seguir acrescenta na função chamada pelo temporizador um teste para que quando o valor chegar a zero, para o temporizador.
Se na criação do temporizador o segundo parâmetro for definido, esse permite a utilização de mais um evento onde esse é acionado quando o temporizador termina de executar. O código a seguir altera a criação da bola na cena para somente depois do temporizador chegar a zero, fazendo com que seja dado um tempo entre a execução do jogo e seu efetivo início.
Para praticar: crie um jogo em que a bola cai em velocidade e a partir de locais diferentes (no eixo horizontal). O jogador deve tocar na bola antes dela chegar a parte inferior da tela. Contabilize quanto tempo o jogador leva para clicar em 20 bolas. |
Próximo passo: adicionar animação (movieclip)