2
respostas

DÚVIDA COM RELAÇÃO A REPETIÇÃO

Na função a seguir:

function voltaPosicaoInicialDoCarro (){

  if(xCarro1 < -50){

    xCarro1 = 600;
  }
  if(xCarro2 < -50){

    xCarro2 = 600;
  }
  if(xCarro3 < -50){

    xCarro3 = 600;
  }

}

Entendi o que a função faz, só não entendi pq eu não preciso chamar a velocidade do carro de novo de novo? tipo:

function voltaPosicaoInicialDoCarro (){

  if(xCarro1 < -50){

    xCarro1 = 600;
    xCarro1 -= velocidadeCarro1;
  }
  if(xCarro2 < -50){

    xCarro2 = 600;
    xCarro2 -= velocidadeCarro2;
  }
  if(xCarro3 < -50){

    xCarro3 = 600;
    xCarro3 -= velocidadeCarro3;
  }

}

Só dando o valor de XCarro, não era pra ele voltar e ficar parado na posição 600? Como ele sabe que deve rodar a função novamente? O código não é lido de cima para baixo apenas 1 vez? Como ele faz essa repetição sem precisar chamar a velocidade de novo?

2 respostas

Eae Raul, tudo bem?

O código só é executado de cima pra baixo uma vez mesmo, a menos que no meio tenha uma estrutura de repetição que manda ficar repetindo uma parte do código 1, 2, x ou até mesmo infinitas vezes.

Acredito que você está utilizando neste curso o editor p5js né?

Nele tem duas funções,

(continuação)

tem a função setup(), que o que você colocar dentro dela vai ser executado só uma vez, no início da execução do projeto.

e tem a função draw() que o que você colocar nela vai executar infinitas vezes até você parar a execução do projeto, de forma que, você dê os seguintes comandos:

funtion draw() {
   mude o valor de x do carro;
   verifique a posição certa pro carro e se for o caso coloque ele no início da pista;
   desenha o carro;
   }

Em um código como o acima, ele vai sempre mudar o valor de x, verificar a posição do carro e desenhar ele, várias vezes, dando a ideia de movimento.

Tanto que se você colocar lá dentro um console.log(), você vai ver a sua mensagem aparecendo muitas vezes. E se você colocar muitas instruções, o seu programa vai até mesmo ficar travando.

Enfim, espero ter ajudado. Bons estudos!!!