Olá,
Depois que fiz a inclusão do placar o site parou de responder...
Olá,
Depois que fiz a inclusão do placar o site parou de responder...
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.