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

Consulta con el codigo

Buenos dias, estoy teniendo problemas con el codigo, por alguna razon, no logro hacer que funcione, coloque un console.log en objetivo y en disparar, y hay veces que no corresponden uno con el otro (siempre haciendo click casi en el centro).

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


<script>

    var pantalla =  document.querySelector("canvas");
    var pincel = pantalla.getContext("2d"); //Dos dimensiones
    var colores = ["green", "blue", "yellow"];
    var i = 0
    var radio = 5;
    var color = "green"
    bordeIzX = false;
    var xAleatorio;
    var yAleatorio;


    pincel.fillStyle = "grey";
    pincel.fillRect(0, 0, 600, 400);

    function dibujarCirc(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();
        xAleatorio = 600 - sortear(600);
        yAleatorio = 400 - sortear(400);
        objetivo(xAleatorio, yAleatorio);        
    }

    function objetivo(x, y){
        dibujarCirc(x, y, radio + 10, "blue");
        dibujarCirc(x, y, radio + 5, "white");
        dibujarCirc(x, y, radio , "red");
        console.log("circulo: " + x + "," + y );
    }

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

    setInterval(actualizarPantalla, 2500);

    function disparar(event){
        var x = event.pageX - pantalla.offsetLeft;
        var y = event.pageX - pantalla.offsetTop;
        console.log("punto: " +  x + "," + y );
        if((x < xAleatorio + radio) && (x > xAleatorio - radio) && (y < yAleatorio + radio) && (y > yAleatorio - radio)){
            alert("tiro certero");
        }
    }

    pantalla.onclick = disparar;

</script>

</body>
3 respuestas

Hola Mariano! Si podes pega el código así lo podemos ver. Fijate que acá mismo se puede insertar, en el ícono que es: < / > . Lo pones entre esas comillas y queda con el formato apropiado.

Ahi lo modifique, estaba cargado, pero evidentemente son el </> no lo muestraba.

solución!

Ahi me di cuenta, tuve que irme un rato y volver para darme cuenta del error, habia escrito var y = event.pageX - pantalla.offsetTop; en vez de var y = event.pageY - pantalla.offsetTop;