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

Eu decidi fazer assim. Achei mais simples.

Não se podia fazer assim. Eu só quiz simplificar mais.

var raio = 10;

    function desenhaCirculo(x, y, raio, cor) {

        pincel.fillStyle = cor;
        pincel.beginPath();
        pincel.arc(x, y, raio, 0, 2 * Math.PI);
        pincel.fill();
    }

    desenhaCirculo(300,200, raio + 20, 'red'); // maior círculo
    desenhaCirculo(300,200, raio + 10, 'white');
    desenhaCirculo(300,200, raio, 'red'); // menor circulo

    function dispara(evento) {

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

        /* abaixo a resolução do professor
        if(x > 300 - raio && x < 300 + raio && y > 200 - raio && y < 200 + raio) { */

        // abaixo a minha resolução
        if(x <= 310 && x >= 290 && y <= 210 && y >= 190) {

            alert('Acertou o alvo!');
            console.log(x + ',' + y);
        }

       // lógica de acerto?
    }

    tela.onclick = dispara;


</script>
2 respostas
solução!

Oi Marcos, tudo certo?

O seu código está correto sim! Porém, veja que caso o raio for alterado, você terá que alterar os códigos na condição todos na mão mesmo, não é algo muito "dinâmico", entende? Se você tivesse deixado a condição anterior, mesmo trocando o valor do raio, os cálculos se ajustarão automaticamente, por isso é uma boa prática utilizar variáveis para isso.

De qualquer maneira, parabéns pelo seu código, é só uma observação mesmo! Precisando de alguma ajuda é só postar aqui no fórum que estaremos à disposição para te ajudar!

Abraços e bons estudos!

Muito Obrigado, por me lembrar disso Giovanna! Verdade, realmente facilitaria mais fazer alterações no código mais tarde usando as variáveis. Você tem razão.