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)
2
respuestas

tiro al blanco

buen dia amigos hice el código del tiro al blanco pero no logro hacer que cuando doy click en el centro del circulo me aparezca la leyenda de tiro acertado podrian apoyarme para saber cual es el error

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

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

    var radio = 10;
    var xAleatorio;
    var yAleatorio;

    function disenharCircunferencia(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 disehanrObjetivo(x,y){

    disenharCircunferencia(x,y,radio + 40,"red");
    disenharCircunferencia(x,y,radio + 20 ,"white");
    disenharCircunferencia(x,y,radio,"red");


    }

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

    function actualizarPantalla(){

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

    }

    setInterval(actualizarPantalla,1000);

    function disparar(evento){
        var x = evento.pageX - pantalla.offsetleft;
        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> 
2 respuestas
solución!

Hola Carlos, espero que estés bien.

A mí me parece que tienes un error de sintaxis en la function disparar. Lo que pasa es que el HTMLElement offsetLeft si escribe así, tal cual acabo de escribir, con la "l" mayúscula.

Así que, cambia pantalla.offsetleft; por pantalla.offsetLeft; y a ver se te funciona el programa.

Si persiste el error, vuelva a ese tópico para que podamos buscar las mejores solucionas juntos. :)

¡Saludos!

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios

Muchas gracias por tu comentario, no me había fijado en ese pequeño pero gran detalle, te agradezco mucho la ayuda