Uma sugestão para fazer o oponente errar, é uma alternativa que faz o oponente errar com o passar do tempo, porem ele acaba por dar uma leve "flickada" na tela de vez em quando por conta do codigo, porem isso é bem sutil (isso nao é um erro, é proposital, faz parte do processo de erro do oponente).
//FUNÇÃO PARA ALEATORIZAR
function aleatoriza(){
interferenciaAleatoria = Math.floor(Math.random()*60);
}
//TIMER PARA ALEATORIZAR A BARRA.
setInterval(aleatoriza,1000);
//RAQUETE DO INIMIGO
function raqueteBot(){
yBarraInimigo = yBolinha+interferenciaAleatoria;
if(yBarraInimigo < 50){
yBarraInimigo = 50;
}
if(yBarraInimigo > 350){
yBarraInimigo = 350;
}
rect(xBarraInimigo, yBarraInimigo-50, 10,quadradoAlturaInimigo)
}
e tambem uma sugestão pra arrumar o problema de flickar a bolinha atras da raquete. foi o melhor que eu consegui pensar em fazer pra arrumar.
https://giphy.com/gifs/GcWYPybQN99x0Pbm2N
//DECLARAR A VARIAVEL resetBug e resetBugInimigo no inicio ambos = 0
function verificaColisao(){
//COLISÃO PLAYER 1
if(xBolinha-raio < xBarra + 10
&& yBolinha - raio < yBarra + (quadradoAltura/2)
&& yBolinha - raio > yBarra - (quadradoAltura/2)-10 ) {
velocidadeXBolinha *= -1;
//SOM
raquetada.play();
//CORREÇÃO DE BUGS
resetBug += 1;
resetBugInimigo = 0;
if (resetBug == 10){
xBolinha = 300;
pontos = 0;
pontosInimigo = 0;
resetBug = 0;
xTexto = 315
}
//FIM DA CORREÇÃO
}
//COLISÃO DO BOT
if(xBolinha - raio > xBarraInimigo - 15
&& yBolinha - raio < yBarraInimigo + (quadradoAlturaInimigo/2)
&& yBolinha - raio > yBarraInimigo - (quadradoAlturaInimigo/2)-8 ) {
velocidadeXBolinha *= -1;
//SOM
raquetada.play();
//CORREÇÃO DE BUGS
resetBugInimigo += 1;
resetBug = 0;
if (resetBugInimigo == 10){
xBolinha = 300;
pontos = 0;
pontosInimigo = 0;
resetBugInimigo = 0;
xTexto = 315
}
}
}
a bolinha vai resetar no centro da tela em direção do inimigo para o player 1 ter tempo de reação, apos isso o placar ira resetar devido ao bug.