O código está na forma de pvp.
Essa condição (keyIsDown(UP_ARROW) && yJogador > 0)
e (keyIsDown(DOWN_ARROW) && yJogador < 330)
abaixo verifica se está saindo do mapa.
function movimentoJogador() {
if (keyIsDown(UP_ARROW) && yJogador > 0) {
yJogador -= 5;
}
if (keyIsDown(DOWN_ARROW) && yJogador < 330) {
yJogador += 5;
}
}
let posicao_x_bolinha = 300;
let posicao_y_bolinha = 200;
const diametro_bolinha = 20;
const raio_bolinha = diametro_bolinha / 2;
let velocidade_x_bolinha = 6;
let velocidade_y_bolinha = 6;
//---------------------------------------------------------
const alturaJogadores= 70;
const comprimentoJogadores = 10;
//---------------------------------------------------------
const xPc = 5;
let yPc = 160;
let velocidade_y_Pc = 0;
//---------------------------------------------------------
const xJogador = 585;
let yJogador = 160;
//---------------------------------------------------------
let pontosPc = 0;
let pontosJogador = 0;
//---------------------------------------------------------
let somRaquetada;
let somPonto;
let somTrilha;
//---------------------------------------------------------
function preload(){
somTrilha = loadSound("trilha.mp3");
somPonto = loadSound("ponto.mp3");
somRaquetada = loadSound("raquetada.mp3");
}
function setup() {
createCanvas(600, 400);
somTrilha.loop();
}
//---------------------------------------------------------
function draw() {
background(0);
mostraBolinha();
movimentoBolinha();
colisao_BolinhaBorda();
mostrarJogadores(xPc, yPc, comprimentoJogadores, alturaJogadores);
mostrarJogadores(xJogador, yJogador, comprimentoJogadores, alturaJogadores)
movimentoPc();
movimentoJogador();
colisao_Biblioteca(xJogador,yJogador);
colisao_Biblioteca(xPc,yPc);
mostrarPlacar();
marcaPonto();
}
//----------------------------------------------------------
function mostrarJogadores(x, y, comprimento, altura) {
rect(x, y, comprimento, altura);
}
function colisao_Biblioteca(x,y) {
colidiu = collideRectCircle(x, y, comprimentoJogadores, alturaJogadores, posicao_x_bolinha, posicao_y_bolinha, raio_bolinha);
if (colidiu) {
velocidade_x_bolinha *= -1;
somRaquetada.play();
}
}
function mostrarPlacar() {
fill(255);
textSize(32);
text(pontosJogador, 250, 50);
text(pontosPc, 350, 50);
}
function marcaPonto() {
if (posicao_x_bolinha > 590) {
pontosJogador += 1;
somPonto.play();
posicao_x_bolinha = 300;
posicao_y_bolinha = 200;
}
if (posicao_x_bolinha < 10) {
pontosPc += 1;
somPonto.play();
posicao_x_bolinha = 300;
posicao_y_bolinha = 200;
}
}
//--------------------------------------------------------
function movimentoPc() {
if (keyIsDown(87) && yPc > 0){
yPc -= 10;
}
if (keyIsDown(83) && yPc < 330){
yPc += 10;
}
}
/*function movimentoPc() {
velocidade_y_Pc = posicao_y_bolinha - yPc - comprimentoJogadores / 2 - 30;
yPc += velocidade_y_Pc;
}*/
//--------------------------------------------------------
function movimentoJogador() {
if (keyIsDown(UP_ARROW) && yJogador > 0) {
yJogador -= 5;
}
if (keyIsDown(DOWN_ARROW) && yJogador < 330) {
yJogador += 5;
}
}
//--------------------------------------------------------
function calculaChanceDeErrar() {
if (pontosDoOponente >= meusPontos) {
chanceDeErrar += 1
if (chanceDeErrar >= 39){
chanceDeErrar = 40
}
} else {
chanceDeErrar -= 1
if (chanceDeErrar <= 35){
chanceDeErrar = 35
}
}
}
function mostraBolinha() {
circle(posicao_x_bolinha, posicao_y_bolinha, diametro_bolinha);
}
function movimentoBolinha() {
posicao_x_bolinha += velocidade_x_bolinha;
posicao_y_bolinha += velocidade_y_bolinha;
}
function colisao_BolinhaBorda() {
if (posicao_x_bolinha + raio_bolinha > width || posicao_x_bolinha - raio_bolinha < 0) {
velocidade_x_bolinha *= -1;
}
if (posicao_y_bolinha + raio_bolinha > height || posicao_y_bolinha - raio_bolinha < 0) {
velocidade_y_bolinha *= -1;
}
}