Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

hola , no me cambia de lugarel objetivo al actualizar pantalla

<!DOCTYPE html>
<html lang="en">

<head>
   <meta charset="UTF-8">
   <meta http-equiv="X-UA-Compatible" content="IE=edge">
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   <title>Document</title>
</head>

<body>



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

      function disenharCircunferencia(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();
         disenharCircunferencia(x, 20, 10);
         x++;

         console.log("actializa");

      }

      function disenharObjetivo(x, y) {


         disenharCircunferencia(100, 100, radio + 20, "red");
         disenharCircunferencia(100, 100, radio + 10, "white");
         disenharCircunferencia(100, 100, radio, "red");

      }

      function sortearPosicion(maximo) {

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

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

      disenharObjetivo(xAleatorio, xAleatorio);
   </script>





</body>

</html>
1 respuesta

El problema es que estás actualizando la variable x en la función actualizarPantalla(), pero no estás actualizando la posición x de la circunferencia que dibujas. Por eso, aunque la variable x cambia, la posición de la circunferencia sigue siendo la misma y no se mueve.

Para solucionar esto, debes pasar la variable x como argumento a la función disenharCircunferencia() y utilizarla para actualizar la posición horizontal de la circunferencia. En lugar de esto:

disenharCircunferencia(x, 20, 10);

Deberías tener:

disenharCircunferencia(x, 20, radio, "blue");

De esta forma, la posición horizontal de la circunferencia se actualizará con la variable x. También he añadido un color azul para que la circunferencia sea visible en contraste con el fondo gris.

Si este post te ayudó, por favor, marca como solucionado ✓.