Minha bolinha muitas vezes bate em uma "parede invisível" no meio do campo e se movimenta para o lado oposto. Não consigo identificar qual é o erro.
//variáveis da bolinha
let xBolinha =300;
let yBolinha = 200;
let diametro = 15;
let raio = diametro/2;
// velocidade da bolinha
let velocidadeXBolinha = 6;
let velocidadeYBolinha = 6;
// variáveis da raquete
let xRaquete = 5;
let yRaquete = 150;
let comprimentoRaquete = 10;
let alturaRaquete = 90;
let colidiu = false;
// varáveis do oponente
let xRaqueteOponente = 585;
let yRaqueteOponente = 150;
let velocidadeYOponente;
//placar do jogo
let meusPontos = 0;
let pontosDoOponente = 0;
function setup() {
createCanvas(600, 400);
}
function draw() {
background(0);
mostraBolinha ();
movimentaBolinha();
verificaBordas ();
mostraRaquete (xRaquete, yRaquete);
movimentaMinhaRaquete ();
verificaColisaoRaquete (yRaquete, yRaquete);
mostraRaquete(xRaqueteOponente, yRaqueteOponente);
movimentaRaqueteOponente();
verificaColisaoRaquete (xRaqueteOponente, yRaqueteOponente);
incluiPlacar();
marcaPonto();
}
function mostraBolinha () {
circle (xBolinha, yBolinha, diametro);
}
function movimentaBolinha (){
xBolinha += velocidadeXBolinha;
yBolinha += velocidadeYBolinha;
}
function verificaBordas (){
if (xBolinha + raio > width || xBolinha - raio < 0){
velocidadeXBolinha *=-1;
}
if (yBolinha +raio > height || yBolinha - raio < 0){
velocidadeYBolinha *=-1;
}
}
function mostraRaquete (x, y) {
rect (x,y,comprimentoRaquete,alturaRaquete);
}
function movimentaMinhaRaquete (){
if (keyIsDown (UP_ARROW)){
yRaquete -= 10;
}
if (keyIsDown (DOWN_ARROW)) {
yRaquete += 10;
}
}
function verificaColisaoRaquete (){
if (xBolinha - raio < xRaquete + comprimentoRaquete && yBolinha - raio< yRaquete + alturaRaquete && ybolinha + raio > yRaquete){
velocidadeXBolinha *=-1;
}
}
function verificaColisaoRaquete(x, y) {
colidiu =
collideRectCircle(x, y, comprimentoRaquete, alturaRaquete, xBolinha, yBolinha, raio);
if (colidiu){
velocidadeXBolinha *=-1;
}
}
function movimentaRaqueteOponente (){
velocidadeYOponente = yBolinha - yRaqueteOponente - comprimentoRaquete /2 - 30;
yRaqueteOponente += velocidadeYOponente;
}
function incluiPlacar (){
fill (255);
text(meusPontos, 278, 26);
text (pontosDoOponente, 321, 26);
}
function marcaPonto(){
if (xBolinha >590){
meusPontos += 1;
}
if (xBolinha < 10){
pontosDoOponente += 1;
}
}