2
respostas

[Dúvida] Não consigo colocar o código no botão Novo jogo.

<!DOCTYPE html>
<html>
<head>
    <title>Acerte o Alvo</title>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width">
    <link rel="stylesheet" href="alvo.css">
</head>

<body>
     <h1>Acerte o Alvo</h1>
     <h2>SCORE</h2>
    <input type="text" value="0"disabled><br>
    <canvas width="400" height="400"></canvas>
   <div id="time"></div>
<script>
    var placar = document.querySelector('input');
    var tela = document.querySelector('canvas');
    var pincel = tela.getContext('2d');

    pincel.fillStyle = 'white';
    pincel.fillRect(0, 100, 400, 400);
    pincel.strokeStyle= 'blue';    

    var raio = 10;
    var raio2=raio+10;
    var raio3= raio+20;
    var xAleatorio;
    var yAleatorio;
    var score = 0;
    var incremento = 100;
    const timeLimit = 60; 
    var novoJogo = document.createElement('button');
    novoJogo.innerHTML = 'Novo Jogo';
    document.body.appendChild(novoJogo);


    let timeLeft = timeLimit;
    const timeDisplay = document.querySelector('#time');
    const timer = setInterval(() => {
  timeLeft--;
  timeDisplay.textContent = `Tempo restante: ${timeLeft}s`;
  if (timeLeft === 0) {
    clearInterval(timer);
    alert('Tempo esgotado!');

  }
}, 1000);


    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, 400, 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(400);
    yAleatorio = sorteiaPosicao(400);
    desenhaAlvo(xAleatorio, yAleatorio);
}

    function aumentaPlacar() {

        placar.value = score + incremento;
}   

function diminuiTempo() {
    tempoRestante--;
    if (tempoRestante == 0) {
        fimDeJogo();
    }
}

function reiniciarJogo() {
           window.location.reload();
           novoJogo;
}
    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)) {
        incremento++;
        aumentaPlacar(score + incremento);
        alert('Acertou! na mosca 100 pontos!');
        inicio();
    }  

    if((x > xAleatorio - raio2)
    && (x < xAleatorio + raio2)
    && (y > yAleatorio - raio2)
    && (y < yAleatorio + raio2)
    && (x > xAleatorio - raio3)
    && (x < xAleatorio + raio3)
    && (y > yAleatorio - raio3)
    && (y < yAleatorio + raio3)) {

        alert('Quase, continue tentando, você consegue');
        inicio();
    }


        else
            {
                alert('Errou, tente de novo');

                inicio();
            }

}

    setInterval(atualizaTela, 2000)

    tela.onclick = dispara;

</script>
</body>
</html>
2 respostas

Tenta incluir essas modificacoes:

var novoJogo = document.createElement('button');
novoJogo.innerHTML = 'Novo Jogo';
document.body.appendChild(novoJogo);

novoJogo.addEventListener('click', reiniciarJogo);

function reiniciarJogo() {
    window.location.reload();
}

Valeu Fernando, código rodando perfeito!!!! muito Obrigado!