//essas são as váriaveis da bolinha
let xBolinha = 400;
let yBolinha = 300;
let dBolinha = 20;
let raio = dBolinha / 2;
// essas são as varias da movimentação da bolinha
let velocidadeXBolinha = 9;
let velocidadeYBolinha = 9;
// variaveis da raquete
let xRaquete = 3;
let yRaquete = 200;
let cRaquete = 20;
let aRaquete = 155;
let colidiu = false;
//variaveis da raquete do oponente
let xROponente = 780;
let yROponente = 200;
let velocidadeYOponente;
//placar do jogo
let meusPontos = 0;
let pontosOponentes = 0;
// sons
let raquetada;
let ponto;
let trilha;
//chance para erro do adversario
let chanceDeErrar = 0;
function preload(){
trilha = loadSound("trilha.mp3");
ponto = loadSound("ponto.mp3");
raquetada = loadSound("raquetada.mp3");
}
function setup() {
createCanvas(800, 600);
trilha.loop();
}
function draw() {
background(10);
mostraBolinha();
movimentaBolinha();
verificaColisaoborda();
mostraRaquete(xRaquete,yRaquete);
mostraRaquete(xROponente,yROponente);
movRaquete1();
movRaquete2();
colisaoRaqueteBiblio(xRaquete,yRaquete);
colisaoRaqueteBiblio(xROponente,yROponente);
incluiPlacar();
marcaPonto();
}
function mostraRaquete(x,y ){
//desenhando um retangulo na localização 3,200(esquerda) com a largura 20 e o tamanho 155.
rect(x,y, cRaquete, aRaquete);
}
function mostraBolinha(){
circle(xBolinha, yBolinha, dBolinha);
//X,Y,D ou seja posição x posição y e diametro da bolinha.
}
function movimentaBolinha(){
xBolinha += velocidadeXBolinha;
yBolinha += velocidadeYBolinha;
// aqui eu estou movimentando a bolinha
}
function verificaColisaoborda(){
if (xBolinha + raio > width || xBolinha - raio< 0 ){
velocidadeXBolinha *= -1;
describe(' se a bolinha tocar no máximo da tela horizontalmente ela vai voltar')
//para a bolinha não perder a metade quando bater na tela, eu usei o raio da bolinha para adicionar quando for cima e diminui quando for para baixo pois o p5js foca no centro da bolinha e não ela por inteira.
}
if (yBolinha + raio > height || yBolinha - raio < 0 ){
velocidadeYBolinha *= -1;
describe(' se a bolinha tocar no máximo da tela verticalmente ela vai voltar')
}
}
function movRaquete1(){
if (keyIsDown(UP_ARROW)){
yRaquete -= 10;
}
if (keyIsDown(DOWN_ARROW)){
yRaquete += 10;
}
}
// este código calcula uma chance do oponente errar dependendo dos pontos dele e dos seus.
function calculaChanceDeErrar() {
if (pontosOponentes >= meusPontos) {
chanceDeErrar += 1
if (chanceDeErrar >= 39){
chanceDeErrar = 40
}
} else {
chanceDeErrar -= 1
if (chanceDeErrar <= 35){
chanceDeErrar = 35
}
}
}
function movRaquete2(){
//se você desejar jogar com amigo coloque o /* no começo e no final
// coloque o /* aqui para jogar com amigo
velocidadeYOponente = yBolinha - yROponente - cRaquete / 2 - 30;
yROponente += velocidadeYOponente + chanceDeErrar;
calculaChanceDeErrar()
// coloque o */
/* apague esta linha para jogar com amigo
if (keyIsDown(87)){
yROponente -= 10;
}
if (keyIsDown(83)){
yROponente += 10;
}
apague esta linha para jogar com amigo*/
}
function colisaoRaqueteBiblio(x,y){
colidiu =
collideRectCircle(x, y, cRaquete, aRaquete, xBolinha, yBolinha, raio);
if (colidiu){
velocidadeXBolinha *= -1;
raquetada.play();
}
}
function incluiPlacar(){
stroke(255)
textAlign(CENTER);
textSize(15);
fill(color(255,140,0));
rect(180, 11, 40 ,20);
fill(255);
text(meusPontos, 200 , 26);
fill(color(255,140,0));
rect(580, 11, 40 ,20);
fill(255);
text(pontosOponentes, 600 ,26);
}
function marcaPonto(){
if (xBolinha > 790){
meusPontos += 1;
ponto.play();
}
if(xBolinha < 10){
pontosOponentes += 1;
ponto.play();
}
}
//para a bolinha não ficar presa a raquete
function bolinhaNaoFicaPresa(){
if (xBolinha - raio < 0){
xBolinha = 23
}
}