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)
1
respuesta

No me sale en mensaje

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

<script>

var pantalla=document.querySelector("canvas");
var pincel=pantalla.getContext("2d"); 
var radio=10;
var xAleatorio;
var yAleatorio;
pincel.fillStyle="lightgrey";
pincel.fillRect(0,0,600,400);

function disenharCirculo(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);
}
    //disenharCirculo(x,20,20)


function cordenadas(x,y){

    disenharCirculo(x,y,radio+20,"red");
    disenharCirculo(x,y,radio+10,"white");
    disenharCirculo(x,y,radio,"red");

}

function aleatorio(maximo){

                return Math.floor(Math.random()*maximo);

}



//var x=0;
function actualizarPantalla(){

    limpiarPantalla()

    var xAleatorio=aleatorio(600);
    var yAleatorio=aleatorio(400);

    cordenadas(xAleatorio,yAleatorio);
    //x++;
}
//actualizarPantalla();
    setInterval(actualizarPantalla,1500);


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("acertó");
           }


}

        pantalla.onclick=disparar;

</script>
1 respuesta
solución!

Hola Alegría, encontré el error del porque no te muestra el mensaje al darle al blanco Recuerda que unas variables se declararon como globales para que pudieran ser utilizadas en otras funciones:

var xAleatorio;
var yAleatorio;

Por lo que dentro de la función actualizar pantalla ya no es necesario darles la etiqueta de var, sino simplemente poner el nombre de la variable:

function actualizarPantalla(){

    limpiarPantalla()

    var xAleatorio=aleatorio(600);
    var yAleatorio=aleatorio(400);

    cordenadas(xAleatorio,yAleatorio);
    //x++;
}

Ese era tu codigo, al remover la etiqueta de var funciona correctamente :D

function actualizarPantalla(){

    limpiarPantalla()

    xAleatorio=aleatorio(600);
    yAleatorio=aleatorio(400);

    cordenadas(xAleatorio,yAleatorio);
    //x++;
}

¡Saludos!