Olhei a solução apresentadada nesse tópico (Não consigo fazer o oponente errar). Porem não esta funcionando. Ajuda
//variáveis da bolinha
let xBall = 300;
let yBall = 200;
let diameter = 20;
let radious = diameter / 2;
//velocidade da bolinha
let speedxBall = 5;
let speedyBall = 5;
//variáveis da raquete
let comprRaquete = 10;
let altuRaquete = 50;
let xRaquete = 5;
let yRaquete = 200;
//variáveis do oponente
let xRaqueteOp = 590;
let yRaqueteOp = 200;
let speedyRaqueteOp;
let errorPossible = 0;
//placar do jogo
let pontos = 0;
let pontosOp = 0;
let colidiu = false;
let raqueteHit
let ponto
let trilha
function preload(){
trilha = loadSound("trilha.mp3")
raqueteHit = loadSound("raquetada.mp3")
ponto = loadSound("ponto.mp3")
}
function setup() {
createCanvas(600, 400);
trilha.loop();
}
function draw() {
background(0);
showBall();
moveBall();
collisionBall();
showRaquete(xRaquete, yRaquete);
moveRaquete();
// collideRaquete();
collideRaqBiblioteca(xRaquete, yRaquete);
collideRaqBiblioteca(xRaqueteOp, yRaqueteOp);
showRaquete(xRaqueteOp, yRaqueteOp);
moveBallOp();
incluiPlacar();
score();
}
function showBall(){
circle(xBall,yBall,diameter);
}
function showRaquete(x,y){
rect(x, y,comprRaquete, altuRaquete);
}
function moveBall (){
xBall += speedxBall;
yBall += speedyBall;
}
function collisionBall (){
if (xBall + radious > width || xBall - radious < 0){
speedxBall *= -1;
}
if (yBall + radious > height || yBall - radious < 0){
speedyBall *= -1;
}
}
function moveRaquete (){
if (keyIsDown(UP_ARROW)){
yRaquete -= 10;
}
if (keyIsDown(DOWN_ARROW)){
yRaquete += 10;
}
}
function collideRaquete(){
if (xBall - radious < xRaquete + comprRaquete && yBall - radious < yRaquete + altuRaquete && yBall + radious > yRaquete ){
speedxBall *= -1;
raqueteHit.play();
}
}
function collideRaqBiblioteca(x, y){
colidiu = collideRectCircle(x, y, comprRaquete, altuRaquete, xBall, yBall, radious);
if (colidiu){
speedxBall *= -1;
raqueteHit.play();
}
// if (keyIsDown(87)){
// yRaquete -= 10;
// }
// if (keyIsDown(83)){
// yRaquete += 10;
// }
}
function moveBallOp(){
speedyRaqueteOp = yBall - yRaqueteOp - comprRaquete / 2 - 30;
yRaqueteOp += speedyRaqueteOp + errorPossible
errorChancePossible();
}
function errorChancePossible(){
if (pontosOp >= pontos){
errorPossible += 1
if (errorPossible >= 39){
errorPossible = 40
}
}
else {
errorPossible -=1
if (errorPossible <=35){
errorPossible = 30
}
}
}
function incluiPlacar(){
stroke(255);
textSize(20);
textAlign(CENTER);
fill(color(36, 113, 163));
rect(130, 10, 40, 20);
fill(255);
text(pontos, 150, 27);
fill(color(36, 113, 163));
rect(430, 10, 40, 20);
fill(255);
text(pontosOp, 450, 27);
}
function score(){
if (xBall + radious > 590){
pontos += 1
ponto.play();
}
if (xBall - radious < 10){
pontosOp += 1
ponto.play();
}
}