2
respostas

[Dúvida] Como é o funcionamento do setInterval quando o usuário é responsável pelo movimento da bolinha

Nas aulas anteriores vimos que o setInterval junto com a função atualizaTela será o responsável por dar o efeito da animação, pq ele vai apagar a tela anterior e uma nova bolinha será desenhada.

Neste caso colocamos o tempo como 20 milisegundos. No entanto, como é o usuário que fará o movimento com as setas do teclado, não entendi muito bem como é o funcionamento do setInterval para esse código.

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

<script>

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


  var x = 20;

  var y = 20;


  //códigos do teclado

  var esquerda = 37;

  var cima = 38;

  var direita = 39;

  var baixo = 40;


  // taxa de incremento

  var taxa = 10;


function desenhaCirculo (x, y, raio) {


        pincel.fillStyle = 'blue';
        pincel.beginPath ();
        pincel.arc (x,y,raio,0,2 * Math.PI);
        pincel.fill ();

}


function limpaTela () {

    pincel.clearRect (0,0,600,400);

}



function atualizaTela () {

  limpaTela ();
  desenhaCirculo (x, y, 10);

}

  setInterval (atualizaTela, 20);

function leDoTeclado(evento) {


  if (evento.keyCode == cima) {

    y = y - taxa

  } else if (evento.keyCode == baixo) {

    y= y+taxa

  } else if (evento.keyCode == direita) {

    x = x + taxa

  } else if (evento.keyCode == esquerda) {

    x = x - taxa
  }

}

   document.onkeydown = leDoTeclado;




</script> 
2 respostas

Oi Rafaela, tudo bem? Espero que sim!

Agradeço por aguardar um retorno nosso.

O objetivo do setInterval no código vai ser limpar a tela, ou seja, limpar em 2 segundos a bolinha que foi feita a cada vez que o usuário utilizar a seta para movimentar. Caso não seja feita essa “limpeza” teríamos várias bolinhas na tela, não ocorrendo o movimento induzido pelo usuário.

Espero ter ajudado, caso surjam dúvidas estaremos à disposição.

Bons estudos e a gente se vê!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Um teste interessante que você pode fazer é aumentar o tempo coloca, por exemplo, 2000. Poderá notar que ficará mais lenta a movimentação da bolinha. Pode ser que te ajude a entender melhor.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software