Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Alert não funciona

```revisei o código dezenas de vezes e não encontro o erro, o alert não funciona quando clico no centro

segue o código:
   var tela = document.querySelector("canvas");
    var pincel = tela.getContext("2d");
    pincel.fillStyle = "lightgray";
    pincel.fillRect(0, 0, 600, 400);

var raio = 10;
var xAleatorio;
var yAleatorio;

    function desenhaCirculo(x, y, raio, cor){
    pincel.fillStyle = cor;
    pincel.beginPath();
    pincel.arc(x, y, raio, 0, 2 * Math.PI);
    pincel.fill()
}
    function limpaTela(){
        pincel.clearRect(0,0,600,400);
    }
    function desenhaAlvo(x, y){
    desenhaCirculo(x , y ,raio+20 , 'red');
    desenhaCirculo(x , y , raio+10 , 'white');
    desenhaCirculo(x , y , raio , 'red');
    }

function posiçãoAleatoria(maximo){
    return Math.floor(Math.random() * maximo);
}
function atualizaTela() {
limpaTela();
var xAleatorio = posiçãoAleatoria(600);
var yAleatorio = posiçãoAleatoria(400);
desenhaAlvo(xAleatorio, yAleatorio);
}
setInterval(atualizaTela, 2000);

function dispara(evento){

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

if(
    (x > xAleatorio - raio) 
    &&(x < xAleatorio + raio)
    &&(y > yAleatorio - raio)
    &&(y < yAleatorio + raio)
)    
    { alert ('Acertou!');}    
}

tela.onclick = dispara;

`

2 respostas
solução!

Oi Suellen

A palavra reservada var deve ser utilizada somente no momento de declaração da variável, só retirar o var assim:

function atualizaTela() {
    limpaTela();
    xAleatorio = posiçãoAleatoria(600);
    yAleatorio = posiçãoAleatoria(400);
    desenhaAlvo(xAleatorio, yAleatorio);
}

Parabéns pelo empenho nos estudos!

Continue praticando e qualquer dúvida pode contar com a gente.

Oi Guilherme, obrigada pelo auxilio (:

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software