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

O alvo não aparece na tela. Alguém pode me ajudar a encontrar o erro?

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

var tela = document.querySelector("Canvas");
var pincel = tela.getContext("2d");
pincel.fillStyle = "lightblue";
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.clearReact(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 = soreteiaPosicao(600);
      yAleatorio = sorteiaPosicao(400);
     desenhaAlvo(xAleatorio, yAleatorio);

}

setInterval(atualizaTela, 1000);

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!")
    }
}




</script>
2 respostas
solução!

Oi Larissa

O seu clearRect está assim clearReact e na função atualizaTela() o soreteiaPosicao(600) está escrito diferente do nome da função.

Uma dica é executar seu código atual com a ferramenta de inspecionar aberta (F12) ela vai te mostrar os erros na aba Console.

Parabéns pelo empenho nos estudos!

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

Entendi. Muito obrigado pela ajuda!