Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
2
respuestas

[Duda] no muestra el alert

<canvas id="miCanvas" width="600" height="400"></canvas>
<script>
    var pantalla = document.getElementById("miCanvas");
    var pincel = pantalla.getContext("2d");
    var radio = 10;
    var x = 0;
    var y = 0;
    var sentidoX = 1;
    var sentidoY = 1;

    function dibujarCirculo(x, y, radio, color) {
        pincel.fillStyle = color;
        pincel.beginPath();
        pincel.arc(x, y, radio, 0, 2 * Math.PI);
        pincel.fill();
    }

    function limpiarPantalla() {
        pincel.clearRect(0, 0, 600, 400);
    }

    function actualizarPantalla() {
        limpiarPantalla();
        if (x > 600) {
            sentidoX = -1;
        } else if (x < 0) {
            sentidoX = 1;
        }
        if (y > 400) {
            sentidoY = -1;
        } else if (y < 0) {
            sentidoY = 1;
        }
        dibujarCirculo(x, y, radio + 20, "red");
        dibujarCirculo(x, y, radio + 10, "white");
        dibujarCirculo(x, y, radio, "red");
        x = x + sentidoX;
        y = y + sentidoY;
    }
    function sortearPosicion(maximo) {
        return Math.floor(Math.random() * maximo);
    }
    function verificarAcertaste(event) {
        var rect = pantalla.getBoundingClientRect();
        var clickX = event.clientX - rect.left;
        var clickY = event.clientY - rect.top;
        var distancia = Math.sqrt(Math.pow(clickX - x, 2) + Math.pow(clickY - y, 2)); 
        if (distancia <= radio + 10 && distancia > radio) {
            alert("¡Acertaste!");
        } else if (distancia <= radio) {
            alert("¡Tiro certero!");
        }
    }
    pantalla.addEventListener("click", verificarAcertaste);
    setInterval(function() {
        xAleatorio = sortearPosicion(600);
        yAleatorio = sortearPosicion(400);
        actualizarPantalla();
        x = xAleatorio;
        y = yAleatorio;
    }, 1000);
</script>
2 respuestas

Lo que pasa es que tu metodo verificarAcertaste() no lo estas usando en ningun momento y tus alerts se encuentran en dicha función si deseas que funcione podrías usar esa funcion dentro del setinterval se me ocurre. revisalo donde debes usar tu metodo verificarAcertaste()

Tuve el mismo problema que vos, y lo solucione dando un valor al radio, en vez de colocarlo como variable, coloque el numero. y funciono.