1
resposta

Após a inclusão do placar, o site não responde mais.

Olá,

Depois que fiz a inclusão do placar o site parou de responder...

https://editor.p5js.org/campoed/sketches/JRzfIMAMe

1 resposta

Olá, Eduarda, tudo bem?

Obrigada pelo aguardo de um feedback.

Analisei o seu código e encontrei o erro que está ocasionando esse travamento. Em todas as funções que utiliza o laço for, ao elaborar o incremento, ao invés de i++, você utiliza i = i++. Isso gera um laço infinito, impedindo de realizar outras ações na página, como também, os dados vão sendo armazenados em algum local da memória até que não haja mais espaço disponível e aí você terá uma falha no processo.

Abaixo segue o código com as devidas alterações:

function verificaColisao(){
  //collideRectCircle(x1, y1, width1, height1, cx, cy, diameter)
  for (let i = 0; i < imagemCarros.length; i++){
    colisao = collideRectCircle(xCarros[i], yCarros[i], comprimentoCarro, alturaCarro, xAtor, yAtor, 15)
    if (colisao){
      voltaParaAPosicaoInicial();
    }
  }
}
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;
      }
  }
}

Outra ressalva é que você não criou a variável meusPontos antes da função marcaPonto, portanto, o incremento em meusPontos += 1 não chega a ser executado, pois a variável não foi previamente definida.

O código ficaria assim:

let meusPontos = 0;

Além disso, apesar de ter desenvolvido a função incluiPontos, você não a colocou na função draw, logo, ela não chega a ser executada e não aparece no canvas.

Segue o código:

function draw() {
  background(imagemDaEstrada);
  mostraAtor();
  mostraCarro();
  movimentaCarro();
  movimentaAtor();
  voltaPosicaoInicialDoCarro();
  verificaColisao();
  marcaPonto();
  incluiPontos();
}

Espero ter ajudá-la.

Reforço que estou à disposição para tirar dúvidas.

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