Olá Bruna,
Vendo a estrutura da função, a única situação que posso imaginar é que você teve que utiliza-la duas vezes no draw(). Uma com os parâmetros do Player e uma com os parâmetros do Oponente.
Caso seja essa a situação. O código ficaria parecido com isso:
function draw() {
background(0);
funcao1();
funcao2();
placar(textoPlayer, xPlayer, yPlayer);
placar(textoOponente, xOponente, yOponente);
funcao3();
funcao4();
funcao5();
}
Desta forma o jogo vai verificar duas vezes se houve pontuação, pois a função draw() irá executar a função placar() para o player, verificando os if(). Em seguida irá executar a função placar() para o Oponente, verificando os if() uma segunda vez.
Sendo assim, quando a bolinha tocasse a borda direita os seguinte eventos aconteceriam:
//A bolinha toca;
//Função Placar(player) é executada;
//Condição if(xBolinha + raio >= 600) é atendida;
//Instrução pontosPlayer++ é executada somando um ponto;
//Placar(Oponente) é executada;
//Condição if(xBolinha + raio >= 600) é atendida;
//Instrução pontosPlayer++ é executada somando um ponto;
Ao fim desta sequencia de eventos o jogo terá adicionado dois pontos para o Player.
Quanto a questão do xBolinha - raio == 0
e xBolinha + raio == 600
. Provavelmente os cálculos xBolinha - raio
e xBolinha + raio
nunca resultam exatamente em 0 e 600. Por exemplo, no meu código quando executei console.log para os parâmetros xBolinha
, xBolinha + raio
e pontosPlayer
. Eu obtive os resultados:
(xBolinha, xBolinha + raio, pontosPlayer)
(589, 596.5, 3)
(595, 602.5, 3)
(031, 038.5, 4)
(589, 596.5, 4)
(595, 602.5, 4)
(031, 038.5, 5)
Essa sequência se repete toda vez que o Player marca um ponto.
Se observarmos os dados obtidos podemos ver que xBolinha + raio
resultou em 602,5, portando se a condição do if() for xBolinha + raio == 600
ela nunca será verdadeira.
Espero ter ajudado.