Oi André! Tudo certo por aí?
O valor passado dentro dos parênteses da função passouTodaATela()
não é o mesmo valor que foi declarado como variável xCarros
.
Na função, estamos passando um parâmetro. Isso quer dizer que é uma nova variável que é declarada apenas no escopo da função, e o seu valor será atribuído no momento em que a função for ser chamada.
Nesse caso, a nossa função passouTodaATela
tem um retorno booleano - Verdadeiro ou Falso. Quando ela for verdadeira, a condição onde ela está sendo parâmetro será executada, dentro da função voltaPosicaoInicialDoCarro()
.
function voltaPosicaoInicialDoCarro(){
for (let i = 0; i < imagemCarros.length; i++){
if (passouTodaATela(xCarros[i])){
xCarros[i] = 600;
}
}
}
O valor que passamos nesse momento de execução da função é o xCarros[i]
, que representa cada item da lista xCarros
. Como estamos em uma estrutura de repetição for
, o código estará sendo executado em loop a cada vez que o retorno de voltaTodaATela
for verdadeiro - ou seja, quando cada carro estiver com o y menor que -50.
O objetivo da função é que os carros voltem a aparecer na tela infinitamente.
Caso o código fique da forma como você compartilhou, a repetição não funcionará corretamente.
Espero que tenha ficado mais claro, André. Fico à disposição para conversarmos caso surjam mais dúvidas.
Abração!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!