Solucionado (ver solución)
Solucionado
(ver solución)
2
respuestas

Alguien me puede decir en donde me equivoque es te

Al final del ejercicio al actualizar mi objetivo se sigue quedando en el mismo lugar y no encuentro donde me equivoque.

<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); 


    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);
    }

     var x = 0

     function actualizarPantalla(){

        limpiarPantalla();
        disenarCircunferencia(x,20,10);
        x++;

     }

     function disenharObjetivo(x,y){

       disenarCircunferencia(100,100,30,"red");
       disenarCircunferencia(100,100,20,"white");
       disenarCircunferencia(100,100,10,"red");

     }

     function sortearPosicion(maximo){

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

     } 

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

     disenharObjetivo(xAleatorio,yAleatorio);

    //setInterval(actualizarPantalla,10);


</script> 
2 respuestas
solución!

Hola Martin,

El problema con tu código está en la función dinsenharObjetivo.

function disenharObjetivo(x,y){

       disenarCircunferencia(100,100,30,"red");
       disenarCircunferencia(100,100,20,"white");
       disenarCircunferencia(100,100,10,"red");

     }

Si bien les pasas un argumento xAleatorio y yAleatorio estas reciben el parámetro pero no lo ejecutan debido a que sigues definiendo que al momento de llamar a la función disenarCircunferencia estas tengan un valor de 100 en X y en Y

disenarCircunferencia(**100**,**100**,30,"red");
disenarCircunferencia(**100**,**100**,20,"white");
disenarCircunferencia(**100**,**100**,10,"red");

La solución es llamar a estas funciones con los argumentos recibidos en la función dinsenharObjetivo, quedando así:

function disenharObjetivo(x,y){
       disenarCircunferencia(x,y,30,"red");
       disenarCircunferencia(x,y,20,"white");
       disenarCircunferencia(x,y,10,"red");
}

De esta forma dibujas correctamente la circunferencia con los valores asignados a xAleatorio y yAleatorio.

Saludos!

Buenísimo ya lo solucione, muchas gracias!