https://editor.p5js.org/antguithur/sketches/kclu12OuF
//Variaveis da Bolinha let xBolinha = 300; let yBolinha = 200; let diametro = 18; let raio = diametro / 2;
//Variaveis da velocidade da Bolinha let velocidadexBolinha = 5; let velocidadeyBolinha = 5;
//Variaveis da Raquete let xRaquete = 5; let yRaquete = 150; let raqueteLargura = 10; let raqueteComprimento = 90;
//variáveis do oponente let xRaqueteOponente = 585; let yRaqueteOponente = 150; let velocidadeyOponente;
//placar do jogo let meusPontos = 0; let pontosDoOponente = 0;
//Variavel utilizada da biblioteca let colidiu = false;
//Variaveis 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(); //sons.play() = tocar uma vez | sons.loop() = tocar várias vez. }
function draw() { background(0); mostrarBolinha(); movimentoBolinha(); verificaColisaoBorda(); mostrarRaquete(xRaquete, yRaquete); mostrarRaquete(xRaqueteOponente, yRaqueteOponente); movimentoRaquete(); movimentoRaqueteOponente(); //verificaColisaoRaquete(); colisaoRaqueteBolinhaBiblioteca(xRaquete, yRaquete); colisaoRaqueteBolinhaBiblioteca(xRaqueteOponente, yRaqueteOponente); incluiPlacar(); marcaPonto(); }
function mostrarBolinha(){ circle(xBolinha, yBolinha, diametro); }
function movimentoBolinha(){ xBolinha += velocidadexBolinha; yBolinha += velocidadeyBolinha; }
function verificaColisaoBorda(){ //Se a bolinha estiver tocando a bordar
if (xBolinha + raio > width || xBolinha - raio < 0) { velocidadexBolinha *= -1; }
if (yBolinha + raio > height || yBolinha - raio < 0) { velocidadeyBolinha *= -1; } }
function mostrarRaquete(a, b){ rect(a, b, raqueteLargura, raqueteComprimento); }
function movimentoRaquete(){ if(keyIsDown(UP_ARROW)){ yRaquete -= 10; } if(keyIsDown(DOWN_ARROW)){ yRaquete += 10; } }
function verificaColisaoRaquete(){ if(xBolinha - raio < xRaquete + raqueteLargura && yBolinha - raio < yRaquete + raqueteComprimento && yBolinha + raio > yRaquete - raqueteComprimento){ velocidadexBolinha *= -1; raquetada.play(); }
}
function colisaoRaqueteBolinhaBiblioteca(a, b){ colidiu = collideRectCircle(a, b, raqueteLargura, raqueteComprimento, xBolinha, yBolinha, raio);
if(colidiu){ velocidadexBolinha *= -1; raquetada.play(); } }
function movimentoRaqueteOponente(){ velocidadeyOponente = yBolinha - yRaqueteOponente - raqueteLargura / 2 - 30; yRaqueteOponente += velocidadeyOponente; }
function incluiPlacar(){ 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(450, 10, 40, 20); fill(255); text(pontosDoOponente, 470, 26); }
function marcaPonto() { if (xBolinha > 590) { meusPontos += 1; ponto.play(); } if (xBolinha < 10) { pontosDoOponente += 1; ponto.play(); } }