Link do jogo: https://editor.p5js.org/moraes1606/full/CYyD3_JW2
//Variáveis da bolinha
let xBolinha = 300
let yBolinha = 200
let diametro = 20
let raio = diametro / 2
//Velocidades da bolinha
let velocidadeXbolinha = 6
let velocidadeYbolinha = 6
//Variáveis da raquete
let xRaquete = 5
let yRaquete = 150
let comprimentoRaquete = 10
let alturaRaquete = 90
//Variáveis da raquete do oponente
let xRaqueteOponente = 585
let yRaqueteOponente = 150
let velocidadeYoponente;
//Variáveis de pontuação
let meusPontos = 0
let pontoDoOponente = 0
//Sounds
let trilha;
let ponto;
let raquetada;
let chanceDeErrar = 0;
let colisao = false;
function preload(){
trilha = loadSound("theWitcher.mp3");
ponto = loadSound("ponto.mp3");
raquetada = loadSound("raquetada.mp3")
}
function setup() {
createCanvas(600, 400);
trilha.loop();
}
function draw() {
background(51, 55, 59);
bolinha();
movimentoBolinha();
colisaoBolinha();
raquete(xRaquete, yRaquete);
movimentaRaquete();
colisaoRaquete();
verificaColisaoRaquete(xRaquete, yRaquete);
raquete(xRaqueteOponente, yRaqueteOponente);
movimentaRaqueteOponente();
verificaColisaoRaquete(xRaqueteOponente, yRaqueteOponente);
incluirPlacar();
marcaPontos();
calculaChanceDeErrar();
rede();
stroke(180);
}
function rede(){
fill(202, 69, 59)
rect(300, 50, 4, 300)
}
function bolinha(){
fill(255,255,255)
circle (xBolinha, yBolinha, diametro);
}
function movimentoBolinha(){
xBolinha += velocidadeXbolinha
yBolinha += velocidadeYbolinha
}
function colisaoBolinha (){
if(xBolinha + raio > width || xBolinha - raio < 0){
velocidadeXbolinha *= -1;
}
if(yBolinha + raio > height || yBolinha - raio < 0){
velocidadeYbolinha *= -1;
}
}
function raquete(x,y) {
fill(255,255,255)
rect(x,y, comprimentoRaquete, alturaRaquete);
}
function movimentaRaquete(){
if (keyIsDown(UP_ARROW)){
yRaquete -= 10
}
if(keyIsDown(DOWN_ARROW)){
yRaquete += 10
}
}
function colisaoRaquete(){
if( xBolinha - raio < xRaquete + comprimentoRaquete &&
yBolinha - raio < yRaquete + alturaRaquete && yBolinha + raio > yRaquete) {
velocidadeXbolinha *= -1;
raquetada.play();
}
}
function verificaColisaoRaquete(x,y){
colisao = collideRectCircle(x, y, comprimentoRaquete, alturaRaquete, xBolinha, yBolinha, raio);
if(colisao){
velocidadeXbolinha *= -1;
raquetada.play();
}
}
function movimentaRaqueteOponente() {
velocidadeYOponente = yBolinha - yRaqueteOponente - comprimentoRaquete / 2 - 30;
yRaqueteOponente += velocidadeYOponente + chanceDeErrar
}
function incluirPlacar(){
textAlign(CENTER)
textSize(16)
fill(202, 69, 59)
rect(133,9, 34, 21)
fill(202, 69, 59)
rect(433,9, 34, 21)
fill(255)
text(meusPontos, 150, 26)
text(pontoDoOponente, 450, 26)
}
function marcaPontos(){
if(xBolinha > 590){
meusPontos += 1;
ponto.play();
}
if(xBolinha < 10){
pontoDoOponente += 1;
ponto.play();
}
}
function calculaChanceDeErrar() {
if (pontoDoOponente >= meusPontos) {
chanceDeErrar += 1
if (chanceDeErrar >= 30){
chanceDeErrar = 48
}
} else {
chanceDeErrar -= 1
if (chanceDeErrar <= 34){
chanceDeErrar = 30
}
}
}