1
resposta

Preciso de ajuda com o "FOR"

let yCarros = [40, 95, 150, 210, 260, 315]; //[0,1,2...] 
let velCarros = [2.3, 2.5, 3.25, 2.4, 2.8, 3.10];
let xCarros = [600, 600, 600, 600, 600, 600];

function mostraCarro(){
  for (let i = 0; i < imagemCarros.length; i = i + 1){
         image(imagemCarros[i],xCarros[i],yCarros[i],50,40); 
  } 
}
function mostraCarro2(){
 image(imagemDoCarroVerde,xCarros[3],yCarros[3],50,40); 
 image(imagemDoCarroPreto,xCarros[4],yCarros[4],50,40); 
 image(imagemDoCarroAmarelo,xCarros[5],yCarros[5],50,40); 
}

function movimentaCarros(){
  xCarros[0] -= velCarros[0];
  xCarros[1] -= velCarros[1];
  xCarros[2] -= velCarros[2];
  xCarros[3] -= velCarros[3];
  xCarros[4] -= velCarros[4];
  xCarros[5] -= velCarros[5];
}
function voltaPosicaoInicialDoCarro(){
  if (xCarros[0] < -50){
   xCarros[0] = 600; 
  }
  if (xCarros[1] < -50){
   xCarros[1] = 600; 
  }
  if (xCarros[2] < -50){
   xCarros[2] = 600; 
  }
  if (xCarros[3] < -50){
   xCarros[3] = 600; 
  }
  if (xCarros[4] < -50){
   xCarros[4] = 600; 
  }
  if (xCarros[5] < -50){
   xCarros[5] = 600;   }
}

Estou tentando colocar carros em todas as linhas da pista. Mas não consigo usar o "FOR" no mostra carros2, movimentacarros e voltaposição inicial.

Alguém poderia me ajudar?

Se eu repito o código abaixo nesses outros, não funciona.

for (let i = 0; i < imagemCarros.length; i = i + 1){ //Laço de repetição
    image(imagemCarros[i],xCarros[i],yCarros[i],50,40);
1 resposta

Para utilizar o "FOR" nessas funções, você pode fazer o seguinte:

Na função "mostraCarro2()", em vez de chamar as imagens individualmente, você pode utilizar um loop "FOR" para percorrer o array de imagens e desenhar cada carro na tela:

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

Na função "movimentaCarros()", você pode usar o mesmo loop "FOR" para atualizar a posição de cada carro:


function movimentaCarros() {
  for (let i = 0; i < xCarros.length; i++) {
    xCarros[i] -= velCarros[i];
  }
}

E na função "voltaPosicaoInicialDoCarro()", você também pode usar um loop "FOR" para verificar cada carro e reposicionar aqueles que saíram da tela:

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

Dessa forma, você poderá manipular todos os carros utilizando apenas um loop "FOR" em cada uma dessas funções. Espero que isso ajude!