Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
3
respuestas

[Duda] Porque no me sale el alert?

Les dejo mi código, estuve comparando con el de otros compañeros pero no encuentro el error, alguien puede explicarme en que me estoy equivocando

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

<script>
    var pantalla = document.querySelector("canvas");
    var pincel = pantalla.getContext("2d");        
    pincel.fillStyle = "yellow"
    pincel.fillRect(0,0,600,400); 


    var radio = 10;
    var xRandom;
    var yRandom;

    function Circunferencia(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);
    }

    var x = 0

    function disenarObjetivo (x,y) {
        Circunferencia(x,y,radio + 20, "red");
        Circunferencia(x,y,radio + 10, "white");
        Circunferencia(x,y,radio,"red");
    }

    function sortearPosicion(maximo) {
        return Math.floor(Math.random()*maximo);
    }

    function actualizarPantalla(){
        limpiarPantalla();
        var xRandom = sortearPosicion(600);
        var yRandom = sortearPosicion(400);
        disenarObjetivo(xRandom,yRandom);
    }

    setInterval(actualizarPantalla,2000)

    function disparo(evento){
        var x = evento.pageX - pantalla.offsetLeft;
        var y = evento.pageY - pantalla.offsetTop;

        if (
            x < xRandom + radio &&
            x > xRandom - radio &&
            y < yRandom + radio &&
            y > yRandom - radio
            ) {  
            alert("le atinaste");
        }
    }


    pantalla.onclick = disparo;

</script> 
3 respuestas
solución!

Dentro de tu función actualizarPantalla estás volviendo a crear las variables xRandom e yRandom, por lo que al momento de hacer el click y ejecutar la función disparo dichas variables no estarán definidas (undefined), por lo que nunca va a entrar a tu if. Asi que la solucion solo es eliminar la palabra reservada var.

Espero haberte ayudado.

grande!, muchas gracias compañero de verdad me estaba quebrando la cabeza con eso, saludos.

Tenia el mismo error!, Muchas gracias!