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

[Dúvida] Não entendi o funcionamento do movimento do carro com a função

A função que utilizamos para movimentar o carro, é:

function movimentaCarro(){
  xCarro -= 2;
}

Queria entender como o movimento quando chamamos na função draw, fica constante. Na minha cabeça, quando declaramos xCarro = 10 por exemplo, chamando a função, o valor de xCarro ficaria 8, sem continuar subtraindo, mas o que acontece é que o carro continua o movimento.

1 resposta
solução!

Pense na função draw() como se fosse um loop, quando utilizamos bibliotecas e pacotes em gerais normalmente não precisamos saber como foi desenvolvido aquele código ou função, isto fica encapsulado e só precisamos saber os detalhes de implementações. Por exemplo podemos criar uma função draw() nós mesmos utilizando Javascript:

function draw() {
  renderizaCarro() 
  movimentaCarro()
}

setInterval(draw, 20);

Neste caso eu utilizei Javascript puro onde setInterval() é um método que chama uma função em determinados intervalos específicos (em milissegundos). Ou seja, a draw() neste caso será executada a cada 20 milissegundos então a função movimentaCarro() também será executada a cada 20 milissegundos e assim atualizando a posição do carro, passando a ideia de movimento. Claro que a função draw() da biblioteca p5.js não foi implementada assim. Você pode ver que você também cria suas próprias funções como movimentaCarro(), e depois só chama ela, sem a necessidade de saber o código por trás dela. A diferença é que draw() é uma função externa, portando devemos apenas consultar a documentação da biblioteca para saber o que ela faz:

draw()

  • Chamada diretamente após setup(), a função draw() executa continuamente as linhas de código contidas em seu bloco até que o programa seja interrompido ou noLoop() seja chamado.

Assim podemos entender porque o movimento do carro é contínuo.

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