https://editor.p5js.org/maro3510/full/ZCoUi_Kun
//PROPRIEDADE DA QUADRA
let xTamanho = 600
let yTamanho = 400
//PROPRIEDADES DA RAQUETE
let xRaquete = 5;
let alturaRaquete = 70;
let yRaquete = 200 - alturaRaquete/2;
let larguraRaquete = 10;
let arestasRaquete = 45;
let velocidadeRaquete = 10;
//let xRaqueteMaisLarguraRaquete = xRaquete + larguraRaquete;
//let yRaqueteMaisAlturaRaquete = yRaquete + alturaRaquete;
//PROPRIEDADES DA RAQUETE INIMIGA
let xRaqueteInimiga = xTamanho - 6 - larguraRaquete;
let yRaqueteInimiga = yTamanho/2 - alturaRaquete/2;
//PROPRIEDADES DA BOLINHA
let xBolinha = 300;
let yBolinha = 200;
let diametroBolinha = 15;
let raioBolinha = diametroBolinha / 2;
//let xBolinhaMenosRaioBolinha = xBolinha - raioBolinha;
//let yBolinhaMenosRaioBolinha = yBolinha - raioBolinha;
//let yBolinhaMaisRaioBolinha = yBolinha + raioBolinha;
//AÇOES DA BOLINHA
let velocidadeXBolinha = 6;
let velocidadeYBolinha = 6;
//PROPRIEDADES DO PLACAR
let meusPontos = 0;
let posicaoXMeusPontos = xTamanho/2-60
let pontosOponente = 0;
let posicaoXPontosOponente = xTamanho/2+60
//SONS DO JOGO
let raquetada;
let ponto;
let trilha;
function preload(){
raquetada = loadSound("raquetada.mp3");
ponto = loadSound("ponto.mp3");
trilha = loadSound("trilha.mp3");
}
let chanceDeErrar = 0;
let colisao = false;
function setup() {
createCanvas(xTamanho, yTamanho);
trilha.loop();
}
function draw() {
background(50);
}
function draw(){
background(0);
propriedadesDaBolinha();
moverBolinha();
colisaoDaBolinha();
mostrarRaquete(xRaquete, yRaquete);
mostrarRaquete(xRaqueteInimiga, yRaqueteInimiga);
movimentoRaquete();
movimentoRaqueteInimiga();
//verificaColisaoRaquete();
verificaColisaoBolinhaBiblioteca(xRaquete, yRaquete);
verificaColisaoBolinhaBiblioteca(xRaqueteInimiga, yRaqueteInimiga)
incluiPlacar(posicaoXMeusPontos, meusPontos);
incluiPlacar(posicaoXPontosOponente, pontosOponente)
marcaPonto();
}
function propriedadesDaBolinha(){
circle(xBolinha, yBolinha, diametroBolinha);
}
function moverBolinha(){
xBolinha += velocidadeXBolinha
yBolinha += velocidadeYBolinha
}
function colisaoDaBolinha(){
if (xBolinha + raioBolinha > width||
xBolinha - raioBolinha < 0){
velocidadeXBolinha *= -1
}
if (yBolinha + raioBolinha > height ||
yBolinha - raioBolinha < 0){
velocidadeYBolinha *= -1
}
}
function mostrarRaquete(x, y){
rect(x , y, larguraRaquete, alturaRaquete, arestasRaquete)
}
function movimentoRaquete(){
if (keyIsDown(UP_ARROW)){
yRaquete -= velocidadeRaquete;
}
if (keyIsDown(DOWN_ARROW)){
yRaquete += velocidadeRaquete;
}
}
function calculaChanceDeErrar() {
if (pontosOponente >= meusPontos) {
chanceDeErrar += 1
if (chanceDeErrar >= 39){
chanceDeErrar = 40
}
} else {
chanceDeErrar -= 1
if (chanceDeErrar <= 35){
chanceDeErrar = 35
}
}
}
function movimentoRaqueteInimiga(){
velocidadeYOponente = yBolinha - yRaqueteInimiga - larguraRaquete / 2 - 30;
yRaqueteInimiga += velocidadeYOponente + chanceDeErrar
calculaChanceDeErrar()
}
function verificaColisaoRaquete(){
if (xBolinha - raioBolinha < xRaquete + larguraRaquete
&& yBolinha - raioBolinha < yRaquete + alturaRaquete
&& yBolinha + raioBolinha > yRaquete) {
velocidadeXBolinha *= -1;
}
}
function verificaColisaoBolinhaBiblioteca(x, y){
colisao =
collideRectCircle(x, y, larguraRaquete, alturaRaquete, xBolinha, yBolinha, raioBolinha);
if (colisao){
velocidadeXBolinha *= -1;
raquetada.play()
}
}
function incluiPlacar(posicaoXPontos, pontos){
stroke(255)
textSize(17)
fill(139,0,0)
rect(posicaoXPontos - 9, 14, 30, 20, 20)
fill(255)
text(pontos, posicaoXPontos, 30)
}
function marcaPonto(){
if (xBolinha < 10){
pontosOponente += 1
ponto.play()
}
if (xBolinha > xTamanho - 10){
meusPontos += 1
ponto.play()
}
}