1
respuesta

no me arroja alert...

Buen dia compañeros he revisado el codigo y para mi modo de ver esta igual que la del profe, comparto codigo para que por favor me ilustren indicandome cual es mi error y porque no me arroja el alert.

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

<script>

    var pantalla = document.querySelector("canvas");
    var pincel = pantalla.getContext("2d");

    pincel.fillStyle = "ligthgrey"; // Propiedad
    pincel.fillRect(0,0,600,400); //funcion

    var radio = 10
    var xAleatorio;
    var yAleatorio;


    function disenarCircunferencia(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){
        disenarCircunferencia(x,y,radio + 20,"red");
           disenarCircunferencia(x,y,radio + 10,"white");
        disenarCircunferencia(x,y,radio,"red");
    }

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

    }

    function actualizarPantalla(){

        limpiarPantalla();
        xAleatorio = sortearPosicion(600);
         yAleatorio = sortearPosicion(400);
        disenarObjetivo(xAleatorio,yAleatorio);
         x++;
    }

       setInterval(actualizarPantalla,1500);

       function disparar(evento){

           var x = evento.pageX - pantalla.offSetLeth;
           var y = evento.pageY - pantalla.offSetTop;

           if ((x < xAleatorio + radio) &&
               (x > xAleatorio - radio) &&
               (y < yAleatorio + radio) &&
               (y > yAleatorio - radio) ) {
               alert("Tiro Certero");
           }

   }

    pantalla.onclick = disparar;

</script>

Quedo atento a sus valiosos aportes.

Gracias.

1 respuesta

hola cristhian el error lo tenes cuando calcular x, si probas cada una de las variables te daras cuenta que x e y son le da valor null, por ende nunca entra al if

       var x = evento.pageX - pantalla.offSetLeth;
       var y = evento.pageY - pantalla.offSetTop;

        console.log( evento.pageX);
        console.log( xAleatorio+radio);

        console.log(x);

        console.log( evento.pageX - pantalla.offSetLeth);
        console.log(evento.pageX - pantalla.offSetLeth);

        corrección 
        var x = evento.pageX; //solamente
       var y = evento.pageY; //solamente