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

Ya que va, que vuelva - Consulta

Tengo el siguiente código:

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

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

    function disenharCircunferencia(x, y, radio) {
      pincel.fillStyle = "blue";
      pincel.beginPath();
      pincel.arc(x, y, radio, 0, 2 * Math.PI);
      pincel.fill();
    }

    function limpiarPantalla() {
      pincel.clearRect(0, 0, 600, 400);
    }

    var x = 0;
    var vuelta = false;

    function actualizarPantalla() {
      if (vuelta == false) {
        limpiarPantalla();
        disenharCircunferencia(x, 20, 10);
        x++;

        if (x > 600) {
          vuelta = true;
        }
      } else {
        limpiarPantalla();
        disenharCircunferencia(x, 20, 10);
        x--;

        if (x < 0) {
          vuelta = false;
        }
      }
    }

    setInterval(actualizarPantalla, 5);
  </script>
</body>

Lo que entiendo es que el fondo color gris de mi "canvas" se borra debido a la función limpiar pantalla, como puedo hacer para que el fondo color gris se mantenga?

1 respuesta

Qué tal Luis, el fondo se borra debido a que la función limpiarPantalla() borra toda configuración previa del canvas. Una solución posible es poner en la misma función el fondo, entonces, cada vez que el canvas se actualice, se pondrá el fondo deseado.

Algo así:

function limpiarPantalla() 
{
      pincel.clearRect(0, 0, 600, 400);
      pincel.fillStyle = "gray";
      pincel.fillRect(0, 0, 600, 400);
    }