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

[Dúvida] O alert não aparece ao clicar no alvo

Pessoal, se alguém puder me dar uma luz, eu agradeço. Já estou vesga e não consigo entender, tudo corre bem, mas o alert não aparece quando clico no alvo, até deixei mais devagar pra facilitar...

<canvas width="600" height="400"></canvas>

<script>

    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 sorteiaPosicao(maximo) {
        return Math.floor(Math.random() * maximo);
    }

    function atualizaTela() {
        limpaTela();
        xAleatorio = sorteiaPosicao(600);
        yAleatorio = sorteiaPosicao(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.onclik = dispara;

</script>
2 respostas
solução!

Olá Juliana, como vai?

Analisando seu código o empecilho que não o permite demonstrar o alert é um erro de sintaxe na hora de chamar o alert, ao escrever tela.onclick = dispara; a segunda letra c de onclick foi ocultada, ficando assim onclik, adicionando a letra que falta o problema será solucionado:

tela.onclik = dispara;
//Mudamos o código acima para:
tela.onclick = dispara;

Prontinho!

Se precisar de ajuda estamos à disposição, conte conosco!

Um bom dia e bons estudos.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓

Obrigada, é pra aprender a não fazer as atividades sem meus óculos! Dos males o menor!