Peguei emprestado de um dos alunos do curso um código de finalização do jogo, e em vez de jogarmos com a máquina esse pong é para 2 jogadores, onde a raquete da esquerda e comandada pelas teclas w (para cima) e s (para baixo) e a da direita pelas teclas seta pra cima e seta pra baixo.
link do jogo:https://editor.p5js.org/ebrithil_6755/sketches/BlrEmgXak
código pra quem quiser: //variáveis da bolinha let xBolinha = 300; let yBolinha = 200; let diametro = 13; let raio = diametro/2;
//velocidade da bolinha let velocidadeXBolinha = 6; let velocidadeYBolinha = 6;
//variáveis da raquete let xRaquete = 5 let yRaquete = 150 let raqueteComprimento = 10 let raqueteAltura = 90
let colidiu = false
//variáveis do oponente let xOponente = 585 let yOponente = 150 let velocidadeY;
//variáveis do placar let meusPontos = 0 let pontosOponente = 0
//variáveis do som do jogo let raquetada let pontos let trilha
let vencedor;
//funções do som
function preload(){ trilha = loadSound("trilha.mp3") pontos = loadSound("ponto.mp3") raquetada = loadSound("raquetada.mp3") }
//funções do cenário function setup() { createCanvas(600, 400); trilha.loop() }
function draw() { background(0); placar() ponto() mostraBolinha(); movimentaBolinha() verificaColisaoBorda() mostraRaquete(xRaquete,yRaquete) mostraRaquete(xOponente,yOponente) movimentaRaquete() verificaColisaoRaquete(xRaquete,yRaquete) verificaColisaoRaquete(xOponente,yOponente) movimentaOponente() fimDoJogo()
}
//funções da bolinha function mostraBolinha(){ circle(xBolinha, yBolinha, diametro) }
function movimentaBolinha(){ xBolinha += velocidadeXBolinha yBolinha += velocidadeYBolinha }
function verificaColisaoBorda(){
if(xBolinha + raio > width || xBolinha - raio <0) { velocidadeXBolinha *= -1; }
if(yBolinha + raio > height || yBolinha - raio <0){ velocidadeYBolinha *= -1 } }
//funçoes da raquete function mostraRaquete(x,y){ rect(x, y, raqueteComprimento, raqueteAltura) }
function movimentaRaquete(){ if (keyIsDown(87)){ yRaquete -= 10; } if (keyIsDown(83)) { yRaquete += 10; } }
function verificaColisaoRaquete(x,y){ colidiu = collideRectCircle(x, y, raqueteComprimento, raqueteAltura, xBolinha, yBolinha, raio) if(colidiu){ velocidadeXBolinha *= -1 raquetada.play() } }
//funções do oponente function movimentaOponente(){ velocidadeY = yBolinha -yOponente - raqueteComprimento/ 2 -85 yOponente += velocidadeY }
function movimentaOponente(){ if (keyIsDown(UP_ARROW)){ yOponente -= 10; } if (keyIsDown(DOWN_ARROW)) { yOponente += 10; } }
//placar function placar(){ stroke(255) textAlign(CENTER) textSize(16) fill(255,140,0) rect(150,10, 40, 20) fill(255) text(meusPontos, 170, 26) fill(255,140,0) rect(450,10, 40, 20) fill(255) text(pontosOponente, 470, 26) }
function ponto(){ if(xBolinha>590){ meusPontos +=1 pontos.play()
} if(xBolinha<10){ pontosOponente +=1 pontos.play()
} }
function fimDoJogo() {
if (meusPontos >= 10) { fill(255); text("Você venceu", 50, 26); velocidadeXBolinha = 0; velocidadeYBolinha = 0; xBolinha = 300; yBolinha = 200; meusPontos = 10; trilha.stop(); pontos.stop(); raquetada.stop(); } if (pontosOponente >= 10) { fill(255); text("Oponente venceu", 350, 26); velocidadeXBolinha = 0; velocidadeYBolinha = 0; xBolinha = 300; yBolinha = 200; pontosDoOponente = 10; trilha.stop(); pontos.stop(); raquetada.stop(); } }
pretendo futuramente criar um menu antes do jogo com as opções de 1 ou 2 jogadores