1
resposta

return xCarro(ultima linha), qual sua função? nao achei nem citação dele antes disso?? nao entendi, help ; )

//código do carro

let xCarros = [600, 600, 600]; let yCarros = [40, 96, 150]; let velocidadeCarros = [2, 2.5, 3.2];

function mostraCarro(){ for (let i = 0; i < imagemCarros.length; i = i + 1){ image(imagemCarros[i], xCarros[i], yCarros[i], 50, 40); } }

function movimentaCarro(){ for (let i = 0; i < imagemCarros.length; i = i + 1){ xCarros[i] -= velocidadeCarros[i]; } }

function voltaPosicaoInicialDoCarro(){ for (let i = 0; i < imagemCarros.length; i = i + 1){ if (passouTodaATela(xCarros[i])){ xCarros[i] = 600; } } }

function passouTodaATela(xCarro){ return xCarro < - 50; }

1 resposta

Olá, Leandro:

Para começar, devemos entender o que a função voltaPosicaoInicialDoCarro() faz:

function voltaPosicaoInicialDoCarro(){ 
    for (let i = 0; i < imagemCarros.length; i = i + 1){
        if (passouTodaATela(xCarros[i])){
            xCarros[i] = 600;
        }
    }
}

Ela retorna os carros para posição inicial. Porém, temos um if fazendo uma verificação se o xCarros de uma posição é menor do que -50, ou seja, se o carro já passou toda a tela.

Sendo assim, a função passouTodaATela() foi criada para melhorar esse código, atribuindo essa finalidade para ela.

function passouTodaATela(xCarro){
    return xCarro < - 50;
}

Assim, o carro terá passado toda a tela se xCarros[i] < - 50. Precisamos do resultado, ou do retorno dessa função. Por isso, utilizamos a palavra return.

Chamamos a função passouTodaATela() dentro do corpo de voltaPosicaoInicialDoCarro(), com um if, pois estamos dizendo que se xCarros[i] passou por toda a tela, xCarros[i] = 600 (posição inicial).

A leitura do código fica mais simplificada com if(passouTodaATela(xCarros[i])), pois entendemos que significa que se o carro correspondente ao índice passou toda a tela, ele voltará para 600.

Espero ter ajudado. Bons estudos!