2
respostas

Dúvida no Desafio Final

Pessoal. Estou tentando acrescentar uma funcionalidade no desafio final que é aumentar a velocidade do alvo ( setInterval ) cada vez que o jogador clica, acertando o alvo.

Tentei criar uma variável tipo:

var velocidade = 3000;

Depois na função setInterval fiz o seguinte:

    setInterval(desenha, velocidade);

Quando o jogador acerta:

    tela.onclick = function(evento){

    var x = evento.pageX - tela.offsetLeft;
    var y = evento.pageY - tela.offsetTop;

    if ((x > alvoX - raio) && (x < alvoX + raio) && (y > alvoY - raio) && (y < alvoY +raio)) {
        velocidade = velocidade - 500;
        alert("Voce acertou!");
    };};

Não está funcionando. Qual seria a forma correta de fazer isso?

2 respostas

Tu pode ter uma var com 1000 miliseg que vai incrementando para cada acerto do cara.

Pesquisando na Internet, acabei descobrindo que podemos utilizar uma variável pra atribuirmos o setInterval():

    var trocaDificuldade = setInterval(desenha, velocidade);

E quando for necessário, pode-se parar a execução deste loop utilizando a função clearInterval(), passando a variável em que o set foi atribuído:

clearInterval(trocaDificuldade);

Dentro da tua cláusula IF (que verifica o acerto), é só usar o clear, alterar o valor da variável velocidade, e em seguida iniciar outro set:

            clearInterval(trocaDificuldade);
            velocidade = velocidade - 200;
            trocaDificuldade = setInterval(desenha, velocidade);
            alert("Acertou no Alvo, Parabéns! Aumentando velocidade...");