Solucionado (ver solução)
Solucionado
(ver solução)
6
respostas

Erro no for

//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(){
  xCarros[0] -= velocidadeCarros[0];
  xCarros[1] -= velocidadeCarros[1];
  xCarros[2] -= velocidadeCarros[2];
}

function voltaPosicaoInicialDoCarro(){
  if (xCarros[0] < -50){
    xCarros[0] = 600
  }
  if (xCarros[1] < -50){
    xCarros[1] = 600
  }
  if (xCarros[2] < -50){
    xCarros[2] = 600
  }
}

https://editor.p5js.org/natanantunes2016/sketches/MybBoO-Bn

6 respostas

Oi Natan, tranquilo?

Pelo código que você postou, não consegui identificar nenhum erro no laço for. No entanto, notei que as variáveis imagemCarros e image não foram declaradas no trecho de código que você compartilhou.

Se o erro que você está enfrentando estiver relacionado a essas variáveis, sugiro que você verifique se elas foram declaradas corretamente e se estão sendo utilizadas da maneira adequada.

Espero ter ajudado e bons estudos!

Eu não entendi, você poder ver o meu projeto ? https://editor.p5js.org/natanantunes2016/sketches/MybBoO-Bn

Oi Natan,

No seu projeto (pelo menos na parte que fica visível no link), há uma função chamada mostraCarro(), que tem um loop for para exibir as imagens dos carros na tela. Dentro do loop, é utilizado um array chamado imagemCarros, que não foi definido anteriormente. Por isso, o código não compilará e uma mensagem de erro será exibida.

Para corrigir esse problema, seria necessário definir a variável imagemCarros antes de usá-la na função mostraCarro(). Isso pode ser feito atribuindo a ela um array de imagens ou definindo cada imagem individualmente em uma posição específica do array. Por exemplo:

let imagemCarros = [imagem1, imagem2, imagem3];

ou

let imagemCarros = [];
imagemCarros[0] = imagem1;
imagemCarros[1] = imagem2;
imagemCarros[2] = imagem3;

Dessa forma, quando a função mostraCarro() for chamada, o array imagemCarros já estará definido e as imagens poderão ser exibidas corretamente na tela.

Para comparar exatamente, uma opção é pegar o código do projeto da aula 3 para poder dar uma olhada.

Espero ter ajudado e bons estudos!

solução!

oi Natan!! Pequeno detalhe, meu caro. Sim, está a faltar apenas uma letrinha na variável :

imagemCarro = [imagemCarro, imagemCarro2, imagemCarro3]; da função draw.

Seria "imagemCarros" . Logo que acrescentei o "s", o jogo funcionou. olhe a imagem!! Bons estudos!!!

Deu certo muito obrigado

Valeu Romeo! Não tinha encontrado! :))