Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Quebrando a cabeça aqui ('-_-)

Imagem do erro

Estou com esse erro no fechamento da tag e ainda não consegui identificar o que está acontecendo... ja olhei a abertura da tag e está correto →<script></script> Eu não sei se o código esta funcionando, eu fiz algumas alterações durante a aula de movimentar a bolinha e fui testar mas na hora do teste aparece esse erro.

o código está abaixo para alguem analisar e me ajudar a solucionar isso:

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

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

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

  }
  var x = 20;
  var indo = true;

  function attTela() {
    if(x >= 600) {
      indo = false;
    }
    if(x <= 0) {
      indo = true;

    }

    while(indo = true){

      limpaTela();
      desenhaCirculo(x, 20, 10);
      x++;


    while(indo = false) {

      limpaTela();
      desenhaCirculo(x, 20, 10);
      x = x - 1;
    }
  }

  setInterval(attTela, 20);
</script>
2 respostas
solução!

Boa tarde Guilherme.

Inicialmente vejo que está faltando o " } " para fechar sua function attTela. Seu código:

 `function attTela() {
    if(x >= 600) {
      indo = false;
    }
    if(x <= 0) {
      indo = true;

    } 

Como ficaria:

function attTela() **{**
    if(x > 600) {
      indo = false;
    }
    if(x < 0) {
      indo = true;
    } 
**}**

Outra coisa é que seu while está recebendo sinal de atribuição. " = " e não de igual "=="

 while(indo = true) 

Você poderia fazer o while assim :

      while (indo == true) {
        limpaTela();
        desenhaCirculo(x, 20, 10);
        x = x + 1;
      }
      while (indo == false) {
        limpaTela();
        desenhaCirculo(x, 20, 10);
        x = x - 1;
      }

Sendo assim, seu function attTela ficaria assim :

      function attTela() {
        while (indo == true) {
        limpaTela();
        desenhaCirculo(x, 20, 10);
        x ++;
      }

      while (indo == false) {
        limpaTela();
        desenhaCirculo(x, 20, 10);
        x = x - 1;
      }
     /* CODIGO ANTIGO
        limpaTela();
        if (x > 600) {
          indo = false;
        } else if (x < 0) {
          indo = true;
        }
      */
    }

Espero que tenha conseguido ajudar.

obrigado! passei um bom tempo analisando o codigo e não notei algo tão simples hahaha, enfim... coisas de iniciante kkk