Criando uma variável e alterando seus valores conforme algum evento seja acionado (toque na minha raquete, ponto do oponente, toque na raquete do oponente), alterando assim o Y da raquete do oponente, fazendo com que a raquete do oponente tenha um comportamento diferente.
let xBolinha = 300;
let yBolinha = 200;
let diametroBolinha = 13;
let raioBolinha = diametroBolinha / 2
let movimentoX = 4;
let movimentoY = 3;
let xRaquete = 5;
let yRaquete = 150;
let comprimentoRaquete = 10;
let alturaRaquete = 70;
let xRaqueteOponente = 585;
let yRaqueteOponente = 150;
let meusPontos = 0;
let pontosOponente = 0;
let movimentoYRaquete;
let trilha;
let ponto;
let raquetada;
let erroOponente = 0;
function preload(){
trilha = loadSound("trilha.mp3");
ponto = loadSound("ponto.mp3");
raquetada = loadSound("raquetada.mp3");
}
function setup() {
createCanvas(600, 400);
trilha.loop();
}
function draw() {
background(0);
mostraBolinha();
xBolinha += movimentoX;
yBolinha += movimentoY;
verificaColisaoBorda()
mostraRaquete(xRaquete, yRaquete);
mostraRaquete(xRaqueteOponente, yRaqueteOponente)
movimentaMinhaRaquete();
colisaoMinhaRaquete();
movimentaRaqueteOponente();
colisaoRaqueteOponente();
verificaPontos();
mostraPlacar();
}
function mostraBolinha(){
circle(xBolinha, yBolinha, diametroBolinha);
}
function verificaColisaoBorda(){
if (xBolinha + raioBolinha > width || xBolinha - raioBolinha < 0){
movimentoX *= -1
ponto.play()
}
if (yBolinha + raioBolinha > height || yBolinha - raioBolinha < 0){
movimentoY *= -1
}
}
function mostraRaquete(x, y){
rect(x, y, comprimentoRaquete, alturaRaquete);
}
function movimentaMinhaRaquete(){
if (keyIsDown(UP_ARROW)){
yRaquete -= 10;
}
if (keyIsDown(DOWN_ARROW)){
yRaquete += 10
}
}
function colisaoMinhaRaquete(){
if (xBolinha - raioBolinha < xRaquete + comprimentoRaquete && yBolinha - raioBolinha < yRaquete + alturaRaquete && yBolinha + raioBolinha > yRaquete){
movimentoX *= -1
raquetada.play()
erroOponente += 10
}
}
function movimentaRaqueteOponente(){
movimentoYRaquete = yBolinha - yRaqueteOponente - alturaRaquete / 2
yRaqueteOponente += movimentoYRaquete - erroOponente
}
function colisaoRaqueteOponente(){
if (xBolinha + raioBolinha > xRaqueteOponente && yBolinha + raioBolinha > yRaqueteOponente && yBolinha - raioBolinha < yRaqueteOponente + alturaRaquete){
movimentoX *= -1
raquetada.play()
erroOponente -= 70;
}
}
function verificaPontos(){
if (xBolinha - raioBolinha < 0){
pontosOponente += 1;
erroOponente += 35
}
if (xBolinha + raioBolinha > width){
meusPontos += 1
}
}
function mostraPlacar(){
fill(255)
stroke(255)
textAlign(CENTER)
textSize(16)
fill(color(0,0,255))
rect(150,10,40,20)
fill(255)
text(meusPontos, 170, 25)
fill(color(0,0,255))
rect(450,10,40,20)
fill(255)
text(pontosOponente, 470, 25)
}