https://editor.p5js.org/luscazera/full/xnlS1ZE_tR
Terminei o projeto, algumas coisas que estavam dando errado eu corrigi com a ajuda da galera aqui Muito obirgado! Esta com as cores diferentes haha
O unico bug que não consegui resolver foi o fato do oponente só errar quando eu erro!
vou deixar aqui pra quem quiser ver
//VARIAVEIS DA BOLINHA
var xBolinha = 300;
var yBolinha = 225;
var diametro = 22;
var raio = diametro / 2;
//VELOCIDADE BOLINHA
var speedXBoll = 8;
var speedYBoll = 8;
//VARIAVEIS RAQUETE
var xRaquete = 5;
var yRaquete = 180;
var larguraRaquete = 14;
var alturaRaquete = 90;
//RAQUETE DO OPONENTE
var xRaqueteOp = 575;
var yRaqueteOp = 180;
var speedYOp;
var chanceDeErrar = 0;
//PLACAR
var meusPontos = 0;
var opPontos = 0;
//SONS
var raquetada;
var ponto;
var trilha;
function setup() {
createCanvas(600, 450);
trilha.loop();
}
function draw() {
background(0, 0, 246);
mostraBolinha();
movimentoBoll();
colisaoBall();
raqueteL(xRaquete, yRaquete);
raqueteMove();
colisaoRaquete();
raqueteL(xRaqueteOp, yRaqueteOp);
raqueteOpAuto();
colisaoRaqueteOp();
bolinhaNaoFicaPresa();
placar();
marcaPonto();
calculaChanceDeErrar();
}
function mostraBolinha() {
circle(xBolinha, yBolinha, diametro);
}
function movimentoBoll() {
xBolinha += speedXBoll;
yBolinha += speedYBoll;
}
function colisaoBall() {
if (xBolinha + raio > width || xBolinha - raio < 0) {
speedXBoll *= -1;
ponto.play();
}
if (yBolinha + raio > height || yBolinha - raio < 0) {
speedYBoll *= -1;
}
}
function raqueteL(x, y) {
rect(x, y, larguraRaquete, alturaRaquete);
}
function raqueteOpAuto() {
speedYOp = yBolinha - yRaqueteOp - larguraRaquete / 2 - 30;
yRaqueteOp += speedYOp + chanceDeErrar;
calculaChanceDeErrar();
}
function calculaChanceDeErrar() {
if (opPontos >= meusPontos) {
chanceDeErrar += 1;
if (chanceDeErrar >= 39) {
chanceDeErrar = 100;
}
} else {
chanceDeErrar -= 1;
if (chanceDeErrar <= 39) {
chanceDeErrar = 10;
}
}
}
function raqueteMove() {
if (keyIsDown(UP_ARROW)) {
yRaquete -= 8;
}
if (keyIsDown(DOWN_ARROW)) {
yRaquete += 8;
}
}
function colisaoRaquete() {
if (
(xBolinha - raio < xRaquete + larguraRaquete) &
(yBolinha - raio < yRaquete + alturaRaquete) &
(yBolinha + raio > yRaquete)
) {
speedXBoll *= -1;
raquetada.play();
}
}
function colisaoRaqueteOp() {
if (
xBolinha + raio > xRaqueteOp &&
(yBolinha - raio < yRaqueteOp + alturaRaquete) &
(yBolinha + raio > yRaqueteOp)
) {
speedXBoll *= -1;
raquetada.play();
}
}
function bolinhaNaoFicaPresa() {
if (xBolinha + raio < 0) {
console.log("bolinha reiniciada");
xBolinha = 300;
}
}
function placar() {
stroke(255);
textAlign(CENTER);
textSize(20);
fill(0);
rect(125, 15, 50, 30);
fill(255);
text(meusPontos, 150, 38);
fill(0);
rect(425, 15, 50, 30);
fill(255);
text(opPontos, 450, 38);
}
function marcaPonto() {
if (xBolinha > 595) {
meusPontos += 1;
}
if (xBolinha < 10) {
opPontos += 1;
}
}
function preload() {
trilha = loadSound("trilha.mp3");
ponto = loadSound("ponto.mp3");
raquetada = loadSound("raquetada.mp3");
}