Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Solução diferente movimentar circulo com mouse entre suas coordenadas

Realizado solução de forma diferente, do professor, não ficou um código limpo, mas consegui atingir o objeito de mexer circulo com mouse entre suas coordenadas x e y

<!DOCTYPE html>
<html lang="pt-br">
  <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>Mover Circulos Teclado</title>
  </head>
  <body>
    <canvas width="600" height="400"></canvas>

    <script>
      var tela = window.document.querySelector("canvas");
      var pincel = tela.getContext("2d");
      pincel.fillStyle = "#c2c2c2";
      pincel.fillRect(0, 0, 600, 400);

      var x = 20;
      var y = 20;

      var right = 39;
      var left = 37;
      var up = 38;
      var down = 40;

      var taxa = 10;
      var raio = 10;

      function desenhaCirculo(x, y, raio) {
        pincel.fillStyle = "#0000ff";
        pincel.beginPath();
        pincel.arc(x, y, raio, 0, 2 * Math.PI);
        pincel.fill();
      }

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

      function atualizarTela() {
        limpaTela();
        desenhaCirculo(x, y, raio);
      }

      setInterval(atualizarTela, 20);

      function leDoTeclado(evento) {
        if (evento.keyCode == right && x < 580) {
          desenhaCirculo(x, y, raio);
          x += taxa;
        } else if (evento.keyCode == left && x > 20) {
          desenhaCirculo(x, y, raio);
          x -= taxa;
        } else if (evento.keyCode == down && y < 380) {
          desenhaCirculo(x, y, raio);
          y += taxa;
        } else if (evento.keyCode == up && y > 20) {
          desenhaCirculo(x, y, raio);
          y -= taxa;
        }
      }
      window.document.onkeydown = leDoTeclado;
    </script>
  </body>
</html>

Dúvida!!! Tento resolver os exercicios antes de ver a solução do professor, e nesse exercicio percebi que ele não add a função desenhaCirculo dentro da condição if para execução do evento pelo teclado. É errado add como eu fiz?

1 resposta
solução!

Olá, Eder! Como vai?

Você encontrou uma forma de resolver o desafio proposto, parabéns!

Neste caso não existe a necessidade de utilizar novamente a função desenhaCirculo pois a mesma já foi declarada anteriormente, basicamente estaríamos apenas repetindo ela.

Continue praticando e bons estudos!

Até mais!