1
resposta

Dúvida sobre o imagemCarros.length

Olá!

Fiquei na dúvida quando o professor usou o imagemCarros.length em vários locais, não entendi como diferenciar esse parâmetro para cada função...

Link para o meu código:

https://editor.p5js.org/flaviogfernandes/sketches/7j4Jy_Vp1

Por exemplo, ao pausar a aula pra tentar fazer sozinho, cheguei ao seguinte código para a função movimentaCarro():

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

Não faria mais sentido usar, no caso acima, o length do índice xCarros e o do velCarros ao invés do imagemCarros para todas as funções? Não sei se consegui passar o que quis dizer, mas pra mim ficou confuso quando ele usou o imagemCarros.length para diversas funções com objetivos diferentes...

Desde já grato. Forte abraço!

1 resposta

Oi Agrocontar, tudo bem? Espero que sim.

Obrigado pela paciência em aguardar um retorno!

Entendi sua dúvida. Inicialmente é preciso compreender que a variável imagemCarros traz uma lista com as imagens dos três carros utilizados no jogo, ao utilizá-la para diferentes finalidades estamos apenas reproduzindo as imagens presentes na lista e aplicando sobre elas uma determinada propriedade, como movimento e velocidade. No caso do exemplo que você colocou, na função movimentaCarro() temos o seguinte código:

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

Nessa função foi aplicado uma propriedade de continuidade o for() e em seu interior foram adicionados alguns parâmetros referentes às imagens dos carros, por isso utilizou-se a variável imagemCarros. Durante a repetição das imagens da lista (os três carros), a função iria fazer com que cada carro se movimentasse com uma determinada velocidade na coordenada “x”. Sendo assim não é necessário alterar os parâmetros da função for para cada especificidade que desejamos criar, pois esses parâmetros estão relacionados às imagens que vamos utilizar para realizar algo, o que precisa ser modificado é apenas a funcionalidade que se deseja elaborar. Um exemplo seria a função voltaParaPosicaoInicial():

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

function passouTodaTela(xCarros){
  return xCarros <-50;
}

Nesta função estabelecemos os mesmos parâmetros para o loop de repetição, mas alteramos a funcionalidade através de outros comandos como a função if() no interior das chaves da função for().

Espero ter ajudado com sua questão. Caso tenha dúvidas, estarei à disposição para te ajudar :)

Grande abraço!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software