Ja testei as soluções que encontrei no forum e nenhuma surtiu efeito,a bolinha continua batendo exatamente no centro da raquete do oponente.
//variáveis da bolinha
let xBolinha=350;
let yBolinha=230;
let diametroBolinha=30;
let raio=diametroBolinha/2;
//velocidade da bolinha
let velocidadeXBolinha=7;
let velocidadeYBolinha=7;
//placar do jogo
let meusPontos=0;
let pontosDoOponente=0;
//variáveis da raquete
let xRaquete=5;
let yRaquete=160;
let comprimentoRaquete=15;
let alturaRaquete=130;
//variáveis da raquete do oponente
let xRaqueteOponente=680;
let yRaqueteOponente=160;
let velocidadeYOponente;
//colisãoGitHub
let colidiu=false;
//sons do jogo
let raquetada
let trilha
let pontos
//chance de errar
let chanceDeErrar = 0
function preload(){
raquetada=loadSound("raquetada.mp3")
trilha=loadSound("trilha.mp3")
ponto=loadSound("ponto.mp3")
}
function setup() {
createCanvas(700, 460);
trilha.loop()
}
function draw() {
background(0);
mostraBolinha();
movimentaBolinha();
verificarBordas();
mostraRaquete(xRaquete,yRaquete);
movimentaRaquete();
//verificaColisaoRaquete();
verificarColisaoRaquetes(xRaquete,yRaquete);
mostraRaquete(xRaqueteOponente,yRaqueteOponente);
movimentaRaqueteOponente();
verificarColisaoRaquetes(xRaqueteOponente,yRaqueteOponente);
mostrarPontos();
marcarPontos();
}
function mostraBolinha(){circle(xBolinha,yBolinha,diametroBolinha);}
function movimentaBolinha(){
xBolinha+=velocidadeXBolinha;
yBolinha+=velocidadeYBolinha;
}
function verificarBordas(){
if(xBolinha+raio>width||
xBolinha-raio<0){velocidadeXBolinha*=-1};
if(yBolinha+raio>height||
yBolinha-raio<0){velocidadeYBolinha*=-1};}
function mostraRaquete(x,y){ rect(x,y,comprimentoRaquete,alturaRaquete);}
function movimentaRaquete()
{if(keyIsDown(UP_ARROW)){yRaquete -=10};
if(keyIsDown(DOWN_ARROW)){yRaquete +=10};}
function verificaColisaoRaquete(){
if(xBolinha-raio<xRaquete+comprimentoRaquete&&
yBolinha-raio<yRaquete+alturaRaquete&&yBolinha+raio>yRaquete)
{velocidadeXBolinha*=-1;
raquetada.play()}
};
function verificarColisaoRaquetes(x,y){
colidiu= collideRectCircle(x, y, comprimentoRaquete, alturaRaquete, xBolinha, yBolinha, diametroBolinha)
if (colidiu){velocidadeXBolinha*=-1;
raquetada.play()};
}
function movimentaRaqueteOponente()
{velocidadeYOponente=yBolinha-yRaqueteOponente-alturaRaquete/2
yRaqueteOponente+=velocidadeYOponente;
calculaChanceDeErrar;}
//function movimentaRaqueteOponente()
//{if(keyIsDown(87)){yRaqueteOponente -=10};
//if(keyIsDown(83)){yRaqueteOponente +=10};}
function calculaChanceDeErrar() {
if (pontosDoOponente >= meusPontos) {
chanceDeErrar += 1
if (chanceDeErrar >= 39){
chanceDeErrar = 40
}
} else {
chanceDeErrar -= 1
if (chanceDeErrar <= 35){
chanceDeErrar = 35
}
}
}
function mostrarPontos(){
strokeWeight(1.5)
stroke(255)
textAlign(CENTER)
textSize(30);
fill(color(255,215,0))
rect(230,15,40,30)
fill(255);
text(meusPontos,250,40);
fill(color(255,215,0))
rect(450,15,40,30)
fill(255);
text(pontosDoOponente,470,40);}
function marcarPontos(){
if(xBolinha+raio>699){
meusPontos+= +1;
ponto.play()};
if(xBolinha-raio<1){
pontosDoOponente+=+1;
ponto.play()
};
}