Depois de adicionar a parte que possibilita o erro do oponente, a raquete do oponente não aparece mais. links: https://editor.p5js.org/carlos.chbds/sketches/RNzpsKxbn https://editor.p5js.org/carlos.chbds/present/RNzpsKxbn
// BLoco das funções
function criaBolinha() {
circle(xBolinha, yBolinha, tamanhoBolinha);
}
function movimentaBolinha() {
xBolinha = xBolinha + velocidadexBolinha;
yBolinha = yBolinha + velocidadeyBolinha;
}
function verificaColisaoBorda() {
if(xBolinha + raioBolinha > width || xBolinha - raioBolinha < 0){
velocidadexBolinha *= -1;
}
if(yBolinha + raioBolinha > height || yBolinha - raioBolinha < 0){
velocidadeyBolinha *= -1;
}
}
function criaRaquete(x,y) {
rect(x, y, xTamanho, yTamanho);
}
function movimentaRaquete() {
if (keyIsDown(UP_ARROW)) {
yRaquete = yRaquete - 5;
}
if (keyIsDown(DOWN_ARROW)) {
yRaquete = yRaquete + 5;
}
}
function colisaoRaqueteBiblioteca(x,y){
colidiu = collideRectCircle(x, y, xTamanho, yTamanho, xBolinha, yBolinha, raioBolinha);
if(colidiu){
raquetada.play();
velocidadexBolinha *= -1;
velocidadeyBolinha *= -1;
}
}
function movRaqueteOponete(){
aceleracao = yBolinha -yRaqueteOponente - yTamanho / 2 - 30;
yRaqueteOponente += aceleracao + chanceDeErrar;
calculaChanceDeErrar();
}
function calculaChanceDeErrar(){
if (oponentePonto >= meuPonto) {
chanceDeErrar += 1
if (chanceDeErrar >= 39){
chanceDeErrar = 40
}
} else {
chanceDeErrar -= 1
if (chanceDeErrar <= 35){
chanceDeErrar = 35
}
}
}
function mostraPlacar(){
textAlign(CENTER);
textSize(18);
fill(color(255,140,0));
rect(130,10,40,20);
rect(430,10,40,20);
fill(255);
text(meuPonto, 150, 26);
text(oponentePonto, 450, 26);
if(xBolinha + raioBolinha > 600){
meuPonto = meuPonto + 1;
ponto.play();
}
if(xBolinha - raioBolinha < 0){
oponentePonto = oponentePonto + 1;
ponto.play();
}
}
function preload(){
trilha = loadSound("trilha.mp3");
ponto = loadSound("ponto.mp3");
raquetada = loadSound("raquetada.mp3");
}
// Parametros da Raquete
let xRaquete = 10;
let yRaquete = 170;
let xTamanho = 10;
let yTamanho = 80;
let colidiu = false;
// Parametros da Raquete oponente
let xRaqueteOponente = 585;
let yRaqueteOponente ;
let chanceDeErrar = 0;
let dificuldade = 20; // inversamente proporcional ao valor atribuído
let aceleracao;
// Parâmentros da bolinha
let xBolinha = 300;
let yBolinha = 200;
let tamanhoBolinha = 40;
let raioBolinha = tamanhoBolinha / 2;
// Parâmetros de velocidade da bolinha
let velocidadexBolinha = 5;
let velocidadeyBolinha = 5;
// Placar
let meuPonto = 0;
let oponentePonto = 0;
// Sons do jogo
let raquetada;
let ponto;
let trilha;
function setup() {
createCanvas(600, 400);
trilha.loop();
}
function draw() {
background(0);
criaBolinha();
criaRaquete(xRaquete, yRaquete);
movimentaRaquete();
movimentaBolinha();
verificaColisaoBorda();
colisaoRaqueteBiblioteca(xRaquete,yRaquete);
movRaqueteOponete()
criaRaquete(xRaqueteOponente, yRaqueteOponente);
colisaoRaqueteBiblioteca(xRaqueteOponente,yRaqueteOponente);
mostraPlacar();
}