1
resposta

Por que desta forma o código não funciona?

https://editor.p5js.org/Xureke/sketches/svrlkkxaW

function movimentaCarro(x, v){ x -= v; if(x + comprimentoCarro < 0){ x = 600; } }

movimentaCarro(xCarro, velocidadeCarro); movimentaCarro(xCarro2, velocidadeCarro2); movimentaCarro(xCarro3, velocidadeCarro3);

Achei que seria uma opção válida, mas não funciona. alguem saberia me dizer o pq?

1 resposta

Geralmente no javascript a passagem de parâmetros é do tipo passagem por valor, ou seja, é criado uma cópia do valor passado para outra variável dentro função. Como resultado as alterações feitas na função NÃO afetam o valor do argumento usado para chamar a função, pois é passado apenas o valor do argumento.

Na sua função está ocorrendo o decremento somente na variável x de dentro da função e não na variável que o carro utiliza para se posicionar.

Espero ter sido claro.