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

[Duda]No funciona el alert):

Les dejo mi 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");

    }

}

pantalla.onclick = disparar;
6 respuestas

Hola Agustin, espero que estés bien.

Necesitamos ver todo su código para poder entenderlo.

Si tienes alguna duda, no dejes de preguntar. ¡Estamos aquí para ayudarte!.

¡Saludos!

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

Aqui esta:

<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 diseharCircunferencia(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 diseharObjetivo(x,y){

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

    }

    function sortearPosicion(maximo){

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

    }


    function actualizarPantalla(){

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

    }

    setInterval(actualizarPantalla,2000);

    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>
solución!

También tenia ese problema, solo quítale el "var" a las variables "xAleatorio" y "yAleatorio" que están dentro de la función actualizarPantalla y ya funcionara el alert

Perfecto, ya me quedo. Cual seria la explicacion logica de poner o quitar el var?

Hola Agustin, espero que estés bien.

Porque las variables solo deben ser declaradas una vez en nuestro código, después solo hacemos referencia a ella.

Un ejemplo:

var miNumero = 5;

function sumar(){
var miNumero = 3;

// El resultado sería 8 pues esta variable miNumero es diferente de la variable miNumero fuera de la función
 // Porque fue declarada una segunda vez
return miNumero + 5;

}

console.log(miNumero); // Resultado es 5, pues está haciendo referencia a la variable de fuera de la función

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

Si no tenemos cuidado podemos hacer una confusión en nuestro código declarando una misma variable más de una vez. Espero haber podido ayudarte a entender el motivo de haberte generado este problema. En caso de que aun tengas dudas puedes volver a escribir aquí y le ayudaré con más ejemplos.

¡Saludos!

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

Hola Bruno, igual espero que te encuentres muy bien.

Excelente, ya vi cual fue mi error y me quedo mas claro el como declarar variables. Muchisimas Gracias.