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

ayuda no encuentro el error

Hola compañeros alguien me pudiera ayudar por favor, no encuentro el error en el código, al dar clic en la no me manda la alerta, ya consulté algunos post para ver si encontraba el error y de igual manera no me funcioná

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

var radio = 10;
var xAleatorio = sortearPosicion(600);
var yAleatorio = sortearPosicion(400);
disenarObjetivo(xAleatorio,yAleatorio);

function disenarCircunferencia(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);
    pincel.fillStyle = "lightgrey";
    pincel.fillRect(0,0,600,400);

}

var x = 0


function disenarObjetivo(x,y){

    disenarCircunferencia(x,y,radio + 20,"red")
    disenarCircunferencia(x,y,radio + 10,"white")
    disenarCircunferencia(x,y,radio,"red")
}

function sortearPosicion(maximo){

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

function actualizarPantalla(){

    limpiarPantalla();
    xAleatorio = sortearPosicion(600);
    yAleatorio = sortearPosicion(400);
    disenarObjetivo(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;
8 respuestas

compartirías tu código para ver que paso

Disculpa Diego, desconozco porque no aparece en el primer comentario, es este, agradezco tu interés.

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

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

solución!

¡Hola Rodolfo!

Este es un error común al principio. Codificar requiere mucha concentración para evitarlos, pero mira... En tu caso, el problema reside en la función disparar, en la cual estás declarando y definiendo dos variables, x e y respectivamente; sin embargo, dichas variables las defines con los métodos evento.PageX y evento.PageY... Pues ese es el error, ya que como debes saber los métodos y funciones se escriben con minúsculas, no con mayúsculas.

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

Espero haber podido despejar tus dudas. ¡Saludos!

Hola, Daniel gracias, acabo de hacer la modificación que comentas y sigue sin lanzarme el alert.

No soy Diego xD, pero... Yo hice la modificación sobre tu código y a mi si me dio resultado.

Recuerda grabar bien los cambios y actualizar la página!

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

Una disculpa Daniel, es solo que toda la noche e tratado de solucionar ese problema, voy a verificar con otro navegador, quizá es donde esta en problema, muchas gracias

Me parce que tienes fuciones de mas al inicio de tu codigo;

var radio = 10; var xAleatorio = //sortearPosicion(600); var yAleatorio = //sortearPosicion(400); //disenarObjetivo(xAleatorio,yAleatorio);

en cuanto a lo de las mayusculas solo tendrias que cambiarle la P siendo pageX y pageY, eso me funciono a mi,

Quedaria asi;

Buenas.

Coincido con Hugo. Por qué definis xAleatorio e yAleatorio al inicio si después las volves a definir?

Inicializalas nomas (let xAleatorio; let yAleatorio;), pero después las definis donde lo hiciste, que es acá...

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