Meu jogo está rodando bem. No entanto, o ponto do oponente esta estranho. Quando a bolinha bate na borda do meu lado não contabiliza ponto para o oponente, mas quando a bolinha bate na minha raquete o ponto é computado. O parte do placar referente aos meus pontos está ok. Já revirei os valores aqui e não entendo pq esta dando errado. :-(
//variaveis bolinha//
let xBolinha = 300;
let yBolinha = 200;
let diametro = 30;
let raio = diametro/2;
//velocidade bolinha
let velocidadeXBolinha = 2;
let velocidadeYBolinha = 2;
// variaveis da raquete
let xRaquete = 5;
let yRaquete = 150;
let raqueteComprimento = 10;
let raqueteAltura = 90;
// variaveis oponente
let xRaqueteOponente = 585;
let yRaqueteOponente = 150;
//let velocidadeXBolinha = 2;
let velocidadeYOponente;
//placar jogo
let meusPontos = 0;
let pontosOponente = 0;
let colidiu = false;
let colidiuOponente = false;
function setup() {
createCanvas(600, 400);
}
function draw() {
background(0);
mostraBolinha();
movimentaBolinha();
verificaColisaoBorda();
mostraRaquete(xRaquete,yRaquete);
movimentaMinhaRaquete();
verificaColisaoRaquete();
colisaoRaqueteBiblioteca(xRaquete,yRaquete);
mostraRaquete(xRaqueteOponente,yRaqueteOponente);
movimentaRaqueteOponente();
colisaoRaqueteBiblioteca(xRaqueteOponente,yRaqueteOponente);
incluiPlacar();
marcaPontos();
}
function mostraBolinha(){
circle(xBolinha, yBolinha, diametro);
}
function movimentaBolinha(){
xBolinha += velocidadeXBolinha; //+= é a msm coisa q xbolinha+velcodadexbolinha//
yBolinha += velocidadeYBolinha;
}
function verificaColisaoBorda(){
if(xBolinha + raio >width ||xBolinha - raio < 0){ //width = tamanha max tela
velocidadeXBolinha *= -1;
}
if(yBolinha +raio > height || yBolinha - raio < 0){
velocidadeYBolinha *= -1;
}
}
function mostraRaquete(x,y){
rect (x,y,raqueteComprimento,raqueteAltura);
}
function movimentaMinhaRaquete(){
if (keyIsDown(UP_ARROW)){
yRaquete -= 10;
}
if (keyIsDown(DOWN_ARROW)){
yRaquete += 10;
}
}
function verificaColisaoRaquete(){
if(xBolinha-raio<xRaquete+raqueteComprimento&&yBolinha-raio<yRaquete+raqueteAltura&&yBolinha+raio>yRaquete){
xBolinha*= -1;
}
}
function colisaoRaqueteBiblioteca(x,y){
colidiu =
collideRectCircle(x, y, raqueteComprimento, raqueteAltura, xBolinha, yBolinha, raio);
if (colidiu){
velocidadeXBolinha*= -1;
}
}
function movimentaRaqueteOponente(){
velocidadeYOponente = yBolinha -yRaqueteOponente-raqueteComprimento/2-30;
yRaqueteOponente += velocidadeYOponente;
}
function incluiPlacar(){
stroke(255);
textAlign(CENTER);
textSize(25);
fill (color(255,140,0));
rect(130,5,40,25);
fill (250);
text(meusPontos,150,26);
fill (color(255,140,0));
rect(430,5,40,25);
fill (255);
text(pontosOponente,450,26);
}
function marcaPontos(){
if (xBolinha>585){
meusPontos+=1;
}
if (xBolinha<5){
pontosOponente+=1;
}
}