Olá!
Exercício finalizado.
P.S.: as medidas e dimensões foram adaptadas para a minha tela.
https://editor.p5js.org/rd_gomes23/sketches/SCmVix2fE
//variáveis da dimensão da raquete
let cRaquete = 15;
let hRaquete = 100;
//posição e velocidade da raquete oponente
let xOponente = 580;
let yOponente = 100;
let VelocidadeYOponente;
//código da comunidade
let Colisao = false;
//posição da minha raquete
let xMinhaRaquete = 5;
let yMinhaRaquete = 50;
//variáveis da bolinha
let xBolinha = 300;
let yBolinha = 200;
let Diametro = 30;
let Raio = Diametro / 2;
//velocidade da bolinha
let VelocidadeXBolinha = 6;
let VelocidadeYBolinha = 6;
//placar
let MeusPontos = 0;
let PontosOponente = 0;
//sons do jogo
let raquetada;
let ponto;
let trilha;
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);
MostraBolinhaERaquetes();
MovimentaBolinha();
VerificaColisao();
MovimentaRaqueteOponente();
MovimentarMinhaRaquete();
VerificaColisãoRaquete();
VerificaColisãoOponente();
Placar();
MarcarPontos();
}
function MostraBolinhaERaquetes(){
circle(xBolinha, yBolinha, Diametro);
rect(xOponente, yOponente, cRaquete, hRaquete)
rect(xMinhaRaquete, yMinhaRaquete, cRaquete, hRaquete)
}
function MovimentaBolinha(){
xBolinha += VelocidadeXBolinha;
yBolinha += VelocidadeYBolinha;
}
function MovimentaRaqueteOponente(){
VelocidadeYOponente = yBolinha - yOponente - cRaquete / 2 - 30;
yOponente += VelocidadeYOponente;
}
function VerificaColisao(){
if (xBolinha + Raio > width ||
xBolinha - Raio < 0){
VelocidadeXBolinha *= -1;
}
if (yBolinha + Raio > height ||
yBolinha - Raio < 0){
VelocidadeYBolinha *= -1;
}
}
function MovimentarMinhaRaquete(){
if (keyIsDown(UP_ARROW)){
yMinhaRaquete -= 10;
}
if (keyIsDown(DOWN_ARROW)){
yMinhaRaquete += 10;
}
}
function VerificaColisãoRaquete(){
if (xBolinha - Raio < xMinhaRaquete + cRaquete &&
yBolinha - Raio < yMinhaRaquete + hRaquete &&
yBolinha + Raio > yMinhaRaquete){
VelocidadeXBolinha *= -1;
raquetada.play();
}
}
//código da comunidade
function VerificaColisãoOponente(){
Colisao = collideRectCircle (xOponente, yOponente, cRaquete, hRaquete, xBolinha, yBolinha,Raio);
if (Colisao){
VelocidadeXBolinha *= -1;
raquetada.play();
}
}
function Placar(){
stroke(255)
textAlign(CENTER);
textSize(16);
fill(color(255,140,0));
rect(150, 10, 40, 20);
fill(255);
text(MeusPontos, 170, 26);
fill(color(255,140,0));
rect(430, 10, 40, 20);
fill(255);
text(PontosOponente, 450, 26)
}
function MarcarPontos(){
if (xBolinha > 585){
MeusPontos += 1;
ponto.play();
}
if (xBolinha < 15){
PontosOponente += 1;
ponto.play();
}
}