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

Placar está marcando tudo errado!

O placar marca pontos a todo momento, inclusive quando não toca na região! Segue o link abaixo.

https://editor.p5js.org/Rafael_BS17/full/KK4y7uGtW

2 respostas
solução!

Observei que a pontuação só é atualizada quando a bolinha toca a parte de cima da tela. Analisando a função marcaPonto temos alguns pontos a serem destacados:

// Função atual
function marcaPonto() {
    if (xBolinha > 590) 
        meusPontos += 1;
     }

    if (yBolinha < 10) {
        pontosOponente += 1;
    }
}
  • Como ambas as pontuações são baseadas na posição horizontal na bolinha, a condição para atualizar pontosOponente deve utilizar a variável xBolinha ao invés de yBolinha
  • Como o raio da bolinha é maior que 10, é possível que ninguém marque pontos, pois a bolinha nunca irá satizfazer as condições impostas

Com base nesses pontos fiz uma refatoração no seu código para corrigir a atualização do placar.

//dimensões da janela
const LARGURA_JANELA = 600;
const ALTURA_JANELA = 400;

//...

function setup() {
  createCanvas(LARGURA_JANELA, ALTURA_JANELA);
}

//...

function marcaPonto() {
   if (xBolinha >= LARGURA_JANELA - raio){
       meuPontos += 1;
   }

   if (xBolinha <= raio){
       pontosOponente += 1;
   }
}

O que absorvi: de 600 para 590 a diferença é de 10. logo, o raio da minha bolinha não poderia ser maior que 10.

if (xBolinha < 10){ pontosOponente += 1; } logo, se o meu raio for maior que 10, não irá ser contabilizado nos //pontosOponente. o meu raio não pode ser maior do que a diferença entre 600 - um valor x, assim como não pode ser superior ao valor colocado na condicinal do //pontosOponente. caso o raio seja maior, a bolinha não tocaria e não seria contabilizado ponto. Tem lógica?