Mesmo aplicando a função pra aumentar a margem de erro da raquete do oponente, o oponente nunca erra a bolinha https://editor.p5js.org/lucas.guyfawkes95/full/FKOtr9RlS
//variáveis da bolinha
let xBolinha = 300;
let yBolinha = 200;
let diametro = 15;
let raio = diametro / 2;
//velocidade da bolinha
let velocidadeXBolinha = 6;
let velocidadeYBolinha = 6;
let comprimentoRaquete = 10;
let alturaRaquete = 90;
//variáveis da raquete
let xRaquete = 5;
let yRaquete = 150;
//variáveis raquete do oponente
let xRaqueteOponente = 585;
let yRaqueteOponente = 150;
let velocidadeYOponente;
let colidiu = false;
//pontos
let meusPontos = 0;
let pontosOponente = 0;
//sons do jogo
let trilha;
let raquetada;
let ponto;
let chanceDeErrar = 0;
function setup()
{
createCanvas(600,400);
trilha.loop();
}
function draw()
{
background(0);
mostraBolinha();
velocidadeBolinha();
verificaColisaoBorda();
mostraRaquete(xRaquete,yRaquete);
movimentaRaquete();
verificaColisaoRaquete(xRaquete,yRaquete)
mostraRaquete(xRaqueteOponente,yRaqueteOponente);
movimentaRaqueteOponente();
verificaColisaoRaquete(xRaqueteOponente,yRaqueteOponente);
incluiPlacar();
somaPontos();
}
function mostraBolinha()
{
circle(xBolinha,yBolinha,diametro);
}
function velocidadeBolinha()
{
xBolinha += velocidadeXBolinha;
yBolinha += velocidadeYBolinha;
}
function verificaColisaoBorda()
{
if(xBolinha > width || xBolinha < 0){velocidadeXBolinha *= -1}
if(yBolinha > height || yBolinha < 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 colisaoRaquete()
{
if(xBolinha - raio < xRaquete + comprimentoRaquete && yBolinha - raio < yRaquete + alturaRaquete && yBolinha + raio > yRaquete){velocidadeXBolinha *= -1}
}
function verificaColisaoRaquete(x,y)
{
colidiu = collideRectCircle(x,y,comprimentoRaquete,alturaRaquete,xBolinha,yBolinha,diametro);
if(colidiu){velocidadeXBolinha *= -1; raquetada.play();}
}
function movimentaRaqueteOponente()
{
velocidadeYOponente = yBolinha - yRaqueteOponente - comprimentoRaquete / 2 - 30;
yRaqueteOponente += velocidadeYOponente + chanceDeErrar
calculaChanceDeErrar()
}
function calculaChanceDeErrar()
{
if (pontosOponente >= meusPontos) {
chanceDeErrar += 1
if (chanceDeErrar >= 39)
{chanceDeErrar=40
}
} else {chanceDeErrar -= 2
if (chanceDeErrar <= 35){chanceDeErrar = 35}
}
}
function incluiPlacar()
{
stroke(255);
textAlign(CENTER);
textSize(20);
fill(color(255,165,0));
rect(170,5,29,29);
fill(255)
text(meusPontos, 184,26);
fill(color(255,165,0));
rect(370,5,29,29);
fill(255);
text(pontosOponente, 384,26);
}
function somaPontos()
{
if(xBolinha > 600){meusPontos += 1;ponto.play();}
if(xBolinha < 0){pontosOponente += 1;ponto.play();}
}
function preload()
{
trilha = loadSound("trilha.mp3");
raquetada = loadSound("raquetada.mp3");
ponto = loadSound("ponto.mp3");
}