Pessoal, já testei varias vezes o código, li algumas respostas no fórum mas ainda não consegui resolver meu problema. A bolinha colide na minha raquete mas na do oponente não, o que consequentemente faz com que eu tenha pontos sempre. Alguém que possa dar um help?
//variáveis da bolinha
let xBol = 300;
let yBol = 200;
let dBol = 13;
let raio = dBol / 2 ;
let velXBol = 5;
let velYBol = 5;
//variáveis da raquete
let xRaq = 5;
let yRaq = 150;
let raqH = 10;
let raqW = 90;
// variáveis da raquete - oponente
let xRaqop = 585;
let yRaqop = 150;
let velYRaqop;
let colidiu = false;
//placar do jogo
let meusPontos = 0;
let pontosOp = 0;
function setup() {
createCanvas(600, 400);
}
/// O que aparece na tela ///
function draw() {
background(color(255,192,203));
mostraBol();
movBol();
colisaoBol();
mostraRaq(xRaq,yRaq);
mostraRaq(xRaqop, yRaqop);
movRaq();
movRaqop();
verificaColisaoRaq(xRaq, yRaq);
verificaColisaoRaq(xRaqop, yRaqop);
incluiPlacar();
marcaPonto();
}
function mostraBol(){
fill(color(139,0,139))
circle(xBol, yBol, dBol);
}
function movBol(){
xBol += velXBol;
yBol += velYBol;
}
function colisaoBol(){
if (xBol + raio> width ||
xBol - raio< 0){
velXBol *= -1;
}
if (yBol + raio> height ||
yBol - raio < 0){
velYBol *= -1;
}
}
function mostraRaq(x,y){
rect(x, y, raqH,
raqW);
}
function movRaq(){
if (keyIsDown(UP_ARROW)){
yRaq -= 10;
}
if (keyIsDown(DOWN_ARROW)){
yRaq += 10;
}
}
function verificaColisaoRaq(x,y){
if (xBol - raio < xRaq + raqH &&
yBol - raio < yRaq + raqW &&
yBol + raio > yRaq){
velXBol *= -1;
}
}
function movRaqop(){
velYRaqop = yBol - yRaqop - raqH /2 -30
yRaqop += velYRaqop
}
function verificaColisaoRaq(x, y) {
colidiu = collideRectCircle(x, y, raqW, raqH, xBol, yBol, raio);
if (colidiu){
velXBol *= -1;}
}
function incluiPlacar(){
stroke(255);
textAlign(CENTER);
textSize (16);
fill(color(238,130,238));
rect(150, 10, 40, 20);
fill(255);
text(meusPontos, 170, 26);
fill(color(238,130,238));
rect(450, 10, 40, 20);
fill(255);
text(pontosOp, 470, 26);
}
function marcaPonto(){
if (xBol > 590){
meusPontos += 1;
}
if (xBol < 10){
pontosOp += 1;
}
}