Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
2
respuestas

No encuentro mi error

ya cheque mi codigo y no encuentro el error

<!doctype html>
<meta charset="UTF-8">

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

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


    function diseñarcircurferencia(X,Y,radio,color){
        pincel.fillStyle = color;
        pincel.beginPath();
        pincel.arc(X,Y,radio,0,2*Math.PI);
        pincel.fill();
    }

    //for ( var x = 20; x < 600; x = x+20 ){
    //    diseñarcircurferencia(x,20,10)
    //}

    function limpiarpantalla(){
        pincel.clearRect(0,0,600,400);  

    }

    var X = 0;

    function diseñar_objetivos(x,y){
    diseñarcircurferencia(x,y,40,"red");
    diseñarcircurferencia(x,y,35,"white");
    diseñarcircurferencia(x,y,30,"red");
    diseñarcircurferencia(x,y,25,"white");
    diseñarcircurferencia(x,y,20,"red");
    diseñarcircurferencia(x,y,15,"white");
    diseñarcircurferencia(x,y,10,"red");
    diseñarcircurferencia(x,y,5,"white");
    }

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


    function actualizarpantalla(){
        limpiarpantalla();
        xAleatorio = sortear_posicion(600);
        yAleatorio = sortear_posicion(400);
        diseñar_objetivos(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

Parece que se estas intentando utilizar la variable "radio" que se utiliza en la función "diseñar_objetivos", pero esta variable no está disponible en la función "disparar". Una solución podría ser definir la variable "radio" fuera de ambas funciones, de manera que sea accesible para ambas. Por ejemplo, podrías agregar la siguiente línea al principio del código, antes de la definición de las funciones: var radio = 40; De esta manera, la variable "radio" estaría disponible en todo el código y podrías utilizarla en ambas funciones sin problemas.

Buenos dias, el error de tu codigo es que en tu funcion disparar haces uso de la variable radio, el cual no has declarado en tu codigo

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"); } } te recomiendo que declares la variable radio y lo uses en diseñar circunferencia, te mando un ejemplo