4
respostas

[Bug] Meu código fica dando um bug em que as imagens dos carros desaparecem.

Na atividade Lógica de programação: laços e listas com Javascript, ele ensina como usar laços e listas, o porém é que no meu código da um erro em que, no momento em que quaisquer carro atravessa a pista, ele desaparece para sempre, e eu não sei como resolver, eu tentei até copiar exatamente o que estava no vídeo e não dava certo. Se precisar do código completo, pode me mandar mensagem no discord Gustavo, vulgo Alex#5897.

//codigo do carro

let xCarros = [600, 600, 600]
let yCarros = [40, 96, 150]
let vCarros = [2,2.5,3.5]

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

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


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

    }
  } 
}

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

PS.: Eu refiz o post porque coloquei no tópico errado.

4 respostas

Tenta esse:

//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;
}

Continuou sumindo para o abismo

https://github.com/alura-cursos/freeway/archive/aula-5.zip

Veja o arquivo ator.js

Estou fazendo junto a aula, o bug continua aqui também.