Olá, decidi dar um passo além do que foi proposto e criei uma função que quando o carro passa do fim da tela a sua velocidade é alterada aleatoriamente conforme trecho abaixo:
function velocidadeCarroDinamica(){
for (let i = 0; i < imagemCarros.length; i++){
if(carroPassouDaTela[i]){
velocidadeCarros[i] = Math.random() * 10
}
}
}
Porém isso gerou engasgos na velocidade do carro, como se ele estivesse freiando e acelerando depois que ele já recebeu a nova velocidade.
Acredito que isso sejá por conta do número de de chamadas do for e if que temos nesse projeto.
Alguém sabe como solucionar?
Segue carro.js completo:
//carro
let xCarros = [600, 600, 600, 600, 600, 600]
let yCarros = [40, 96, 150, 210, 270, 318]
let velocidadeCarros = [2 ,2.5 ,3.2, 5, 3.3, 6]
let carroPassouDaTela = [false, false, false, false, false, false,]
let comprimentoCarro = 50
let larguraCarro = 40
function velocidadeCarroDinamica(){
for (let i = 0; i < imagemCarros.length; i++){
if(carroPassouDaTela[i]){
velocidadeCarros[i] = Math.random() * 10
}
}
}
function movimentaCarro(){
for (let i = 0; i < imagemCarros.length; i++){
xCarros[i] -= velocidadeCarros[i]
}
}
function voltaPosicaoInicialDoCarro(xAxys){
for (let i = 0; i < imagemCarros.length; i++){
if (passouTodaATela(i)){
xCarros[i] = 600
carroPassouDaTela[i] = true
}
}
}
function passouTodaATela(indice){
return xCarros[indice] < -50
}
function mostraCarro(){
for (let i = 0; i < imagemCarros.length; i++){
image(imagemCarros[i], xCarros[i], yCarros[i], comprimentoCarro, larguraCarro)
}
}