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

Meu alvo

Fiz o modelo do alvo com uma posição diferente a cada vez que iniciar o programa, além de uma limitação na borda do espaço para o alvo não ficar recortado, só faltou mesmo eu lembrar como faz para resetar qndo há um acerto.

<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 posicaoX = Math.round(Math.random()* 600 - (raio +20));
    if (posicaoX <= raio + 20 ) {
        posicaoX = 30;
    }
    var posicaoY = Math.round(Math.random()* 400  - (raio +20));
    if (posicaoY <= raio + 20) {
        posicaoY = 30;
    }

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

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

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

    function dispara(evento) {

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

        if ((x > posicaoX - raio) 
            && (x<posicaoX + raio) 
            && (y>posicaoY - raio)
            && (y<posicaoY + raio)) {
            alert ('Acertou o Alvo!');

        }

    }


    tela.onclick = dispara;

</script>
2 respostas
solução!

Olá Roger! Tudo bem?

É muito legal ver como está se esforçando nos estudos da lógica de programação... e você está indo muito bem!

Praticar dessa forma, treinando e tentando fazer do seu jeito as soluções para os desafios é ótimo para seu aprendizado!

Sinta-se sempre à vontade para compartilhar conosco suas dúvidas ou soluções!

Bons estudos! 😄

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.Bons Estudos!

olá, muito obrigado pela resposta.