Olá, tive a ideia de colocar os carros vindo de duas direções, e por isso, inicialmente tive dificuldades para simplificar o codigo em listas e com o loop "for" na parte de movimentação e de retorno a posição inicial com o "return". Ainda assim, consegui simplificar o maximo possivel o codigo e acabei por não usar o nome da "variavel.length" e sim nomeando a localização direto pelo numero na "array", assim como exemplificado abaixo na função "movimentaCarros", dividindo a em duas para os carros que vem de direções diferentes. E para a função "return" não consegui utilizar ela duas vezes na function, já percebi que é uma limitação propria do JavaScript, só consequi aplicar para a primeira direção de movimento definida. Dessa forma gostaria de saber se existe a opção de melhorar mais esse codigo?
//lista de variaveis dos carros em lista
let xCarros = [500, 500, 500, -90, -90, -90];
let yCarros = [35, 92, 139, 210, 260, 315];
let velocidadeCarros = [2, 3, 4, 2.5, 4.5, 3.5];
let alturaCarros = [80, 95, 85, 89, 85, 80];
let larguraCarros = [58, 52, 62, 66, 46, 47];
function mostraCarros() {
for (let i = 0; i < imagemCarros.length; i += 1) {
image(imagemCarros[i], xCarros[i], yCarros[i], alturaCarros[i], larguraCarros[i]);
}
}
function movimentaCarros() {
for (let i = 0; i < 3; i += 1) {
xCarros[i] -= velocidadeCarros[i];
}
for (let i = 3; i < 6; i += 1) {
xCarros[i] += velocidadeCarros[i];
}
}
function voltarPosicaoInicialCarro() {
for (let i = 0; i < 3; i += 1) {
if (verificaSePassouTela(xCarros[i])) {
xCarros[i] = 500;
}
}
for (let i = 3; i < 6; i += 1) {
if (xCarros[i] > 500) {
xCarros[i] = -90;
}
}
}
function verificaSePassouTela(xCarros) {
return xCarros < -100
}
Agradeço a atenção.