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

Meu p5.js está travando

Olá pessoal,

Quando dou play no meu projeto ele trava e não consigo saber onde está o erro, pq não indica, simplesmente não aparece nada e depois da erro na página, conseguem me ajudar? https://editor.p5js.org/Nycole_Siqueira/sketches/nQvDBj1yu

3 respostas

Se o seu projeto está travando sem mensagens de erro específicas, pode ser um desafio encontrar o problema, mas aqui estão algumas sugestões para ajudar a diagnosticar e corrigir o problema:

  1. Console de Erros:

    • Abra o console do seu navegador (pressione F12 e vá para a guia "Console").
    • Veja se há mensagens de erro. Isso pode dar pistas sobre onde o problema está ocorrendo.
  2. Depuração com console.log:

    • Adicione declarações console.log em pontos estratégicos do seu código para rastrear onde o código está executando antes de travar.
    • Por exemplo, adicione console.log("Aqui estou!"); em vários lugares para verificar a saída no console.
  3. Comentários de Código:

    • Adicione comentários ao seu código para documentar o que cada parte faz. Isso pode ajudar você e outros a entender melhor o fluxo do programa.
  4. Revisão de Lógica:

    • Revise a lógica do seu código para garantir que não há loops infinitos, condições mal formuladas ou outros problemas lógicos que possam causar travamentos.
  5. Remoção Gradual de Funcionalidades:

    • Tente remover gradualmente partes do seu código até encontrar a parte que está causando o problema. Isso pode ajudar a isolar a fonte do travamento.
  6. Comentários Temporários:

    • Comente temporariamente seções inteiras do seu código para ver se o problema persiste. Isso pode ajudar a identificar se o problema está em uma parte específica do código.
  7. Atualização de Bibliotecas:

    • Verifique se você está usando a versão mais recente da biblioteca p5.js ou qualquer outra biblioteca que você esteja utilizando. Às vezes, problemas são corrigidos em versões mais recentes.
  8. Verificação de Variáveis:

    • Certifique-se de que todas as variáveis que você está usando estão definidas corretamente antes de usá-las. Variáveis indefinidas ou nulas podem causar erros.

Depois de realizar essas verificações, você provavelmente terá mais informações sobre onde o problema está ocorrendo.

solução!

Oi, Nycole! Como vai?

Seu jogo está entrando em uma falha no laço for, por conta de um pequeno errinho de sintaxe nas instruções desse laço.

Na página carro.js, em todas as condições de incremento de laço, você utilizou a notação i = i++. Essa notação é redundante e por isso o programa fica confuso! O símbolo i++ é uma forma moderna de abreviar i = i + 1. Logo, é necessário escolher entre uma das duas formas, apenas.

Fica assim:


function mostraCarro(){
  for (let i = 0; i < imagemCarros.length; i++){
    image(imagemCarros[i], xCarros[i], yCarros[i], comprimentoCarro, alturaCarro);
  }
}

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

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

Além disso, a função colidiu(), na página ator.js, está incompleta. É necessário adicionar um valor para que a variável yAtor assuma quando a função colidiu() for executada:

function colidiu(){
  yAtor = 366;
}

Com essas alterações seu jogo deve voltar a funcionar certinho! Seu código está ficando muito bem organizado, Nycole. Continue praticando e se dedicando.

Abraços!

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

Muitoo obrigado, deu super certo!!!