2
respostas

[Bug] Como conserto esse bug?

Os carros não aparecem e o jogo faz um barulho sinistro!

Link do meu projeto : https://editor.p5js.org/PolimataDigital/sketches/u8RtygXF1

2 respostas

Oi, Victor! Tudo bem?

Podemos localizar e solucionar o problema acessando a página de código: carro1.js. Nela, inicialmente, podemos notar que as listas yCarros, velocidadeCarros e xCarros apresentam apenas 5 valores declarados dentro de cada uma delas, entretanto, possuimos 6 carros dentro da lista imagemCarros. Dessa forma, devemos adicionar mais um valor, correspondente ao sexto carro, em cada uma das listas: yCarros, velocidadeCarros e xCarros.

Após isso, na função mostraCarros() temos um for para percorrer essa mesma função, o que não faz sentido, pois esse for deve percorrer a lista imagemCarros. Devemos então alterar dentro do nosso for o comando i < mostraCarros.length por i < imagemCarros.length. Somado a isso, podemos perceber que dentro de image() o primeiro parâmetro (lista responsável pela imagem dos carros) está escrito de uma forma diferente da declarada, logo, alteraremos o parâmetro imagemDosCarros[i] por imagemCarros[i].

Seguiremos o mesmo raciocínio com as demais funções declaradas ao longo dessa página, alterando dentro do for os comandos por i < imagemCarros.length.

Após fazer as alterações necessárias, comentadas acima, essa página de código deverá ficar da seguinte maneira:

///listas de dados de tudo
let yCarros = [40,100,150,210,265,318];
let velocidadeCarros = [3.5 , 5.2 , 3 , 6 , 2.5, 1.5];
let xCarros = [600,600,600,600,600,600];


//variável mostrar carros
function mostraCarros(){
   for (let i = 0; i < imagemCarros.length; i= i + 1 ){
      image (imagemCarros[i],xCarros[i],yCarros[i], 50,40);
   }
  }


//variável velocidade
function movimentaCarros(){
    for (let i = 0; i < imagemCarros.length; i= i + 1 ){
      xCarros[i] -= velocidadeCarros[i];
    }
  }

 //Loop dos carros
 function voltaPosicaoInicialDosCarros(){
    for (let i = 0; i < imagemCarros.length; i= i + 1 ){

          if (xCarros[i] < -40){
            xCarros[i] = 600
          }
    }

  }

Espero ter ajudado! Caso tenha ficado alguma dúvida sinta-se à vontade em comunicar, estou à disposição!

Um forte abraço e bons estudos!

Caso este post tenha te ajudado, por favor, marcar como solucionado ✓

Nossa, tem razão!

Eu decidi copiar o código todo do professor depois que o meu deu errado, mas alguma coisa deu errado nesse processo e foi isso!

Eu entendi a lógica agora, muito obrigado mesmo ! Ajudou muito !