1
resposta

[Dúvida] Não entendi a condiçao

Na resolução temos o seguinte código:

var x = 20;
  var sentido = 1;

  function atualizaTela() {
    limpaTela();
    if (x > 600) {
      sentido = -1;
    } else if (x < 0) {
      sentido = 1;
    }
    desenhaCirculo(x, 20, 10);
    x = x + sentido;
  }
  setInterval(atualizaTela, 10);

Se o X for maior do que 600, o sentido de x é -1. Se o x for menor do que 0, o sentido de x é +1. Mas quando estiver no eixo x 200, por exemplo. É maior que zero, e menor que 600. E isso se aplica a todos os eixos entre 0 e 600. Como o browser identifica pra onde ir?

1 resposta

Oi Luana!!

Então, quando pede pra desenhar o circulo:

function desenhaCirculo(x, y, raio) , o que está entre parênteses são as posições(x e y) dela no canvas e a medida(raio) dela. O 20 no caso, é pq o instrutor deixou setado a posição y, bem no alto, mas vc pode alterar e ver a diferença.

Depois vem a condição: if (x > 600) , isso diz que: Se o x que tem dentro do circulo passar da posição 600 do eixo X, o circulo recebe o movimento contrário (-1) e volta, inverte o sentido.

E else if (x < 0) , diz que senão ( senão por que? Porque só existem duas condições para o X receber valor inverso, ou é ultrapassando 600, ou é ultrapassando zero), seguindo, se ele não ultrapassar o 600 ele ultrapassa o zero e então ele o X, recebe +1 para inverter seu sentido. Aqui diz exatamente o que tem que acontecer, maior que o 600 e menor que o zero.

São pontos de coordenadas dentro de um canvas em que naquele exato ponto x600 acontece algo. E no X0 acontece o também. -vc disse: "Mas quando estiver no eixo x 200, por exemplo. É maior que zero, e menor que 600." Mas a condição é exatamente pra o quando o X do circulo estiver no exato ponto no eixo 600 ou no eixo zero.

O circulo começa com velocidade positiva, quando chega em 600, recebe -1 e volta. Quando chega em zero, recebe +1 e volta novamente. É como se dissesse para o circulo, quando bater na borda tem que voltar. Mas como o circulo vai saber onde é a borda? Neste momento é que a condição de que a borda é representada por zero e 600. Se vc colocar if (x > 300), o circulo vai até o meio e volta. Porque vc colocou essa condição!! E essa condição é que diz tudo! Espero ter ajudado em alguma coisinha que seja!!

Bons estudos!!