Teria alguma forma de fazer com que a raquete do oponente as vezes acerte e as vezes erre a bolinha? O jeito que está ou acerta ou erra (dependendo da subtração do movimento da raqueteoponente) e sempre na mesma posição. Se sim, qual seria o código pra as vezes errar e as vezes acertar, creio eu que o jogo ficaria bem mais divertido assim.
Aqui vai meu código caso queira dar uma olhada.
//bolinha
let xBolinha = 300;
let yBolinha = 200;
let diametro = 20;
let raio = diametro / 2;
//raquete
let xRaquete = 5;
let yRaquete =150;
let comprimentoRaquete = 10;
let alturaRaquete = 90;
//variáveis oponente
let xRaqueteOponente = 585;
let yRaqueteOponente = 150;
let velocidadeYOponente;
//velocidade bolinha (dificuldade)
let velocidadeXBolinha = 4;
let velocidadeYBolinha = 4;
//background do jogo
function setup() {
createCanvas(600, 400);
}
//funções jogo
function draw() {
background(50);
mostrabolinha();
movimentaçaobolinha();
verificadorcolisao();
mostraraquete(xRaquete, yRaquete);
movimentaraquete();
verificadorcolisaoraquete();
mostraraquete(xRaqueteOponente, yRaqueteOponente);
movimentaraqueteoponente();
}
//programação
function mostrabolinha(){
circle(xBolinha, yBolinha, diametro)}
function movimentaçaobolinha(){
xBolinha += velocidadeXBolinha;
yBolinha += velocidadeYBolinha;}
function verificadorcolisao(){
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 -= 5;}
if (keyIsDown(DOWN_ARROW)){yRaquete += 5;}}
function verificadorcolisaoraquete(){
if (xBolinha - raio < xRaquete + comprimentoRaquete && yBolinha - raio < yRaquete + alturaRaquete && yBolinha + raio > yRaquete){velocidadeXBolinha *= -1}}
function movimentaraqueteoponente(){
velocidadeYOponente = yBolinha - yRaqueteOponente - alturaRaquete / 2 - 20;
yRaqueteOponente += velocidadeYOponente
}