https://editor.p5js.org/chaigon/full/w--b3FW7u
//Variáveis referentes a bola
let xBola = 400;
let yBola = 300;
let diametroBola = 20;
let raio = diametroBola / 2;
//Variáveis referentes a raquete do jogador
let xRaquete = 10;
let yRaquete = 250;
let raqComprimento = 10;
let raqAltura = 100;
//Variáveis do oponente
let xRaqEnemy = 780;
let yRaqEnemy = 250;
let velocidadeYEnemy;
let colisao = false;
//Velocidade da bola
let velocidadeXBola = 12;
let velocidadeYBola = 12;
//Variáveis Placar
let playerPoints = 0;
let enemyPoints = 0;
//Variáveis Sons
let raquetada;
let points;
let music;
function preload(){
music = loadSound("bossaNova.wav");
points = loadSound("ponto.wav");
raquetada = loadSound("raquetada.wav");
}
function setup() {
createCanvas(800, 600);
music.loop();
}
function draw() {
background(0);
showBall();
moveBall();
marginColisionVerify();
showRaquete(xRaquete, yRaquete);
raqueteMovement();
//colisionVerify();
colisionVerifyLibrary(xRaquete, yRaquete);
colisionVerifyLibrary(xRaqEnemy, yRaqEnemy);
showRaquete(xRaqEnemy,yRaqEnemy);
raqEnemyMovement();
showPlacar();
scorePoints();
}
function showBall(){
circle(xBola,yBola,diametroBola);
}
function moveBall(){
xBola += velocidadeXBola;
yBola += velocidadeYBola;
}
function marginColisionVerify(){
if (xBola > (width - raio) || xBola < raio){
velocidadeXBola = velocidadeXBola * -1;
}
if (yBola > (height - raio) || yBola < raio){
velocidadeYBola *= -1;
}
}
function showRaquete(x,y){
rect(x, y, raqComprimento, raqAltura);
}
function raqueteMovement(){
if(keyIsDown(UP_ARROW)){
if(yRaquete >= 0){
yRaquete -= 10;
}
}
if(keyIsDown(DOWN_ARROW)){
if(yRaquete <= height - raqAltura){
yRaquete += 10;
}
}
}
function raqEnemyMovement(){
velocidadeYEnemy = yBola - yRaqEnemy - raqComprimento /2 - 70;
yRaqEnemy += velocidadeYEnemy;
}
function colisionVerify(){
if(xBola - raio < xRaquete + raqComprimento && yBola - raio < yRaquete + raqAltura && yBola + raio > yRaquete){
velocidadeXBola *= -1;
raquetada.play();
}
}
function colisionVerifyLibrary(x, y){
colidiu = collideRectCircle(x, y, raqComprimento, raqAltura, xBola, yBola, raio);
if (colidiu){
velocidadeXBola *= -1;
raquetada.play();
}
}
function showPlacar(){
stroke(color(75,0,130));
textAlign(CENTER);
textSize(18);
fill(color(135,206,235));
rect(300,10, 40,20, 5);
fill(255);
stroke(0);
text(playerPoints, 320,26);
stroke(color(75,0,130));
fill(color(135,206,235));
rect(500,10, 40,20, 5);
fill(255);
stroke(0);
text(enemyPoints, 520, 26);
}
function scorePoints(){
if(xBola > 800 - raio){
playerPoints++;
pontos.play();
}
if(xBola < raio){
enemyPoints++;
points.play();
}
}