Fala Jean, tudo bem? espero que sim.
Observando o seu projeto já deixo os meus parabéns pela criatividade, ficou muito divertido e além disso ressalto que essa é a melhor forma de aprender, quando você tenta explorar mais e mais formas de fazer algo, parabéns mesmo, adorei!
Mas o seu bug ele estar sendo bem recorrente aqui, não se sinta frustrado, quando eles vierem o nosso querido fórum é para isso mesmo.
Existe o erro de cálculo que pode ser tanto pelo p5.js ou um erro da biblioteca no qual não reconhece as laterais do retângulo aumentando o tamanho dele é possível ver que a bolinha entra sempre pelas “pontas” dele quase como se fosse invisíveis, de algum modo o erro está aí.

Mas utilizando uma forma já feita em seu código bolinhaNaoFicaPresa
usei uma lógica que além de avisar quando fica presa o oponente não ganha pontos caso ocorra isso. ficando assim:
function bolinhaNaoFicaPresa(){
if (xBolinha - raio < -6){
console.log("bolinha prendeu")
pontosDoOponente -= 1;
xBolinha = 30
}
}
Quanto a essa etapa acredito que encontrei parte do problema mas o jogo melhorou e está mais justo para o jogador que controla.
Outro erro que reparei é que suas raquetes, caso segure o dedo, elas vão para o “infinito e além” arrumei usando as seguintes funções.
function podeSeMover(){
return yRaquete > -15;
}
function podeSeMover1(){
return yRaquete < 350;
}
e depois chamei as mesma funções na function movimentaMinhaRaquete
ficando assim:
function movimentaMinhaRaquete(){
if (keyIsDown(UP_ARROW)){
if(podeSeMover()){
yRaquete -= 10;
}
}
if (keyIsDown(DOWN_ARROW)){
if(podeSeMover1()){
yRaquete += 10;
}
}
}
A lógica é a seguinte: a function podeSeMover
caso retorne true
ela permite a ação do if
que é adicionar ou diminuir o valor do yRaquete
com base no acionamento das teclas.
Jean espero que de alguma forma eu tenha te ajudado, bons estudos e como você disse “vamos a luta”. Um grande abraço e até mais.
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!