Busquei fazer alguma melhoria para aperfeiçoamento e desenvolvimento do aprendizado. Logo, inclui um limite que pontos para informar o vencedor da partida, mas não consegui inserir uma pausa no jogo, um stop. Apesar de reportar certinho quem ganhou e o placar o jogo continua rodando com a mensagem na tela. Quero de o jogo pare assim que tiver o vencedor e fique apenas a mensagem até ser reiniciado.
Segue Código:
//Pong - JavaScript - Sem biblioteca - Com placar e vencedor
//variáveis da bolinha
let xBolinha = 300;
let yBolinha = 200;
let diametro = 20;
let raio = diametro / 2;
//variáveis da velocidade da bolinha
let velocidadeXBolinha = 6;
let velocidadeYBolinha = 6;
//variáveis raquete player
let xRaquete = 5;
let yRaquete = 165;
let raqueteComp = 5;
let raqueteAlt = 70;
//variáveis raquete oponente
let xRaqueteOpo = 590;
let yRaqueteOpo = 165;
let velocidadeXOpo;
let velocidadeYOpo;
//placar do jogo
let meusPontos = 0;
let pontosDoOpo = 0;
function setup() {
createCanvas(600, 400);
}
function draw() {
background(50, 50, 205); //código RGB de cores 'azul'
meioDeCampo();
raqueteOponente(xRaqueteOpo, yRaqueteOpo);
mostraBolinha();
movimentoBolinha();
raquete(xRaquete, yRaquete);
movimentaMinhaRaquete();
movimentaRaqueteOpo();
verificaColisaoBorda ();
verificaColisaoRaquete();
verificaColisaoRaqueteOpo();
incluirPlacar();
contador();
vencedor();
}
function raquete(){
rect(xRaquete, yRaquete, raqueteComp, raqueteAlt)
}
function raqueteOponente(){
rect(xRaqueteOpo, yRaqueteOpo, raqueteComp, raqueteAlt)
};
function meioDeCampo(){
rect (300,0,2, 400)
}
function mostraBolinha (){
fill (color(255,255,255))
circle(xBolinha, yBolinha, diametro);
}
function movimentoBolinha(){
xBolinha += velocidadeXBolinha;
yBolinha += velocidadeYBolinha;
}
function verificaColisaoBorda (){
if (xBolinha + raio > width || xBolinha - raio < 0){ //'width'limite borda horizontal
velocidadeXBolinha *= -1;
}
if (yBolinha + raio > height || yBolinha - raio < 0){ //'width'limite borda vertical
velocidadeYBolinha *= -1;
}
}
function movimentaMinhaRaquete (){
if (keyIsDown(UP_ARROW)){
yRaquete -= 10;
}
if (keyIsDown(DOWN_ARROW)){
yRaquete += 10;
}
yRaquete = constrain(yRaquete, 5, 325);
}
function movimentaRaqueteOpo (){
velocidadeYOpo = yBolinha - yRaqueteOpo - raqueteComp/2 - 75;
yRaqueteOpo += velocidadeYOpo;
yRaqueteOpo = constrain(yRaqueteOpo, 5, 325);
}
function verificaColisaoRaquete(){
if (xBolinha - raio < xRaquete && yBolinha - raio < yRaquete + raqueteAlt && yBolinha + raio > yRaquete){
velocidadeXBolinha *= -1;
}
}
function verificaColisaoRaqueteOpo(){
if (xBolinha + raio > xRaqueteOpo + raqueteComp && yBolinha - raio < yRaqueteOpo + raqueteAlt && yBolinha + raio > yRaqueteOpo){
velocidadeXBolinha *= -1;
}
}
function incluirPlacar (){
text(meusPontos, 278, 26);
text(pontosDoOpo, 317, 26);
}
function contador (){
if (xBolinha > 590){
meusPontos += 1;
}
if (xBolinha < 10){
pontosDoOpo += 1;
}
}
function vencedor(){
if (meusPontos > pontosDoOpo && meusPontos >= 10){
text("Você Venceu", 110, 200);
text(meusPontos, 120,210);
text(" X ", 134, 210);
text(pontosDoOpo, 155, 210);
}
if (meusPontos < pontosDoOpo && pontosDoOpo >= 10) {
text("Você Perdeu", 110, 200);
text(meusPontos, 120,210);
text(" X ", 134, 210);
text(pontosDoOpo, 155, 210);
}
}
Caso tenha melhorias a serem realizadas podem sugerir por favor. Não sei por que motivo não consegui inserir parâmetros em algumas função como: "movimentoRaqueteOpo".
Obrigado.