Eu fiz alumas modificações no código, além das variáveis, para deixar o jogo um pouco mais interessante (eu acho kkkk)
Adicionei alguns vetores para deixar algumas coisas aleatórias, usando as referencias do próprio p5js
Vetor da posição inicial (xBola) e direção (xV, que é a velocidade e a direção do movimento da bola) que é executado sempre no começo de jogo ou após alguém fazer ponto:
//variáveis da bola
let posicao = [50,100,150,200,250,300,350];
//movimento da bola - dessa forma só preciso mudar uma variável, o resto muda junto.
let xV = 7;
let yV = xV;
let direcao = [xV,xV*-1];
function setup() {
createCanvas(600, 400);
inicio();
}
function inicio(){
xBola = 300;
//deixa a posição e direção inicial da bolinha aleatória
yBola = random(posicao);
xV = random(direcao);
yV = random(direcao);
}
function colisaoBorda(){
if (xBola + raio > width){
pontoR1 += 1;
inicio(); //faz com que após o ponto, a bola volte ao inicio
ponto.play();
}
if (xBola - raio < 0){
pontoR2 += 1;
inicio(); //faz com que após o ponto, a bola volte ao inicio
ponto.play();
}
if (yBola + raio > height || yBola - raio < 0){
yV *= -1;
mesa.play();
}
}
Também uma forma de deixar o movimento da raquete do oponente mais realista, dando uma margem de erro baseado num vetor de velocidade da raquete (rV[]) que é baseado na velocidade da bolinha(xV):
insira seu código aqui
//Variavel da Raquete do Oponente
let rV = [xV+1,xV,xV-1];
function moveraquete2(){
//faz com que a raquete 2 só se mexa quando a bolinha está na sua mesa e indo em sua direção
if (xBola > 300 && xV > 0){
//faz com que a raquete se mova de forma realista e com velocidade variável para a bolinha em vez de se teletransportar, dando uma margem de erro
if (yRaquete2 != yBola){
if (yRaquete2 < yBola){
yRaquete2 += random(rV);
}
else{
yRaquete2 += random(rV) * -1;
}
}
}
}
Eu também modifiquei a movimentação de teclado pra mouse pq eu acho q fica mais fácil controlar, tinha feito assim no scratch, achei legal fazer aqui também.
function moveraquete1(){
yRaquete1 = mouseY; // faz a raquete seguir o mouse
}
Tem outras modificações fúteis que eu fiz, mas achei essas interessantes, e me custou um certo tempo pra descobrir como fazer kkkkk Provavelmente existe formas melhores de fazer isso, mas essa foi a que eu encontrei kkkkk Espero que tenha ficado bom e alguém veja utilidade.
Quem quiser testar: https://editor.p5js.org/maxpresi/full/zM9Tj2cMd Quem quiser ver o código completo: https://editor.p5js.org/maxpresi/sketches/zM9Tj2cMd
^^