1
respuesta

Tiro al blanco

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

<script>

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

    var radio=10;
    var xAleatorio;
    var yAleatorio;

    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);
    }

    var x=0;

    function actualizarPantalla(){
        limpiarPantalla();
        xAleatorio=generarPosicion(600);
        yAleatorio=generarPosicion(400);
        dibujarObjetivo(xAleatorio,yAleatorio)
        x++;
    }

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

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


    setInterval(actualizarPantalla,1000);

    function disparar(evento){
        var x = evento.pageX-pantalla.offsetLeft;
        var y = evento.pageY-pantalla.offsetTop;
            console.log("["+x+","+y+"]");
        if((x < xAleatorio+radio) &&
            (x > xAleatorio-radio) &&
            (y < yAleatorio+radio) &&
            (y > yAleatorio-radio) ){
            alert("bien");
        }
    }

//    dibujarObjetivo(xAleatorio,yAleatorio);

    pantalla.onclick=disparar;
</script>
1 respuesta

Muchas gracias por compartir tu codigo bro, me faltaba solamente una f en pantalla.offsetLeft y pantalla.offsetTop , creo que unas clases de ingles tambien me hacen falta jajaja.