Notei que na function function movimentaRaqueteOponente() mesmo aumentando para 40 a subtração, ainda fica dificil marcar pontos no oponente, gostaria de entender o motivo e como posso fazer para melhorar essa falha, tambem notei que mesmo o jogo funcionando em alguns momentos ocorre falhas na contagem de pontos.
Aqui esta o codigo:
//variaveis da bolinha let xBolinha = 300; let yBolinha = 200; let diametro = 20; let raio = diametro/2;
//velocidade da bolinha let velocidadeXBolinha = 6; let velocidadeYBolinha = 6;
//variaveis da raquetejogador let xRaquete = 5; let yRaquete = 150; let larguraRaquete = 10; let alturaRaquete = 90;
//variaveis da raqueteoponente let xRaqueteOponente = 585; let yRaqueteOponente = 150; let velocidadeYOponente;
//colisao entre bolinha e raquete let colisao = false;
//placar do jogo let pontosJogador = 0; let pontosOponente = 0;
function setup() { createCanvas(600, 400); }
function draw() { background(0); mostraBolinha(); movimentaBolinha(); colisaoBorda(); mostraRaquete(xRaquete, yRaquete); movimentaRaqueteJogador(); colisaoRaquete(); verificaColisaoRaquete(xRaquete, yRaquete); mostraRaquete(xRaqueteOponente, yRaqueteOponente); movimentaRaqueteOponente(); verificaColisaoRaquete(xRaqueteOponente, yRaqueteOponente); incluiPlacar(); marcaPonto(); }
function mostraBolinha() { circle(xBolinha, yBolinha, diametro); }
function movimentaBolinha() { xBolinha += velocidadeXBolinha; yBolinha += velocidadeYBolinha; }
function colisaoBorda() { 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, larguraRaquete, alturaRaquete); }
function movimentaRaqueteJogador() { if (keyIsDown(UP_ARROW)) { yRaquete -= 10; }
if (keyIsDown(DOWN_ARROW)) { yRaquete += 10; } }
function colisaoRaquete() { if (xBolinha - raio < xRaquete + larguraRaquete && yBolinha - raio < yRaquete + alturaRaquete && yBolinha + raio > yRaquete) { velocidadeXBolinha *= -1; } }
function verificaColisaoRaquete(x, y) { colisao = collideRectCircle ( x , y , larguraRaquete , alturaRaquete , xBolinha , yBolinha , raio ) ;
if(colisao) { velocidadeXBolinha *= -1; } }
function movimentaRaqueteOponente() { velocidadeYOponente = yBolinha - yRaqueteOponente - larguraRaquete /2 - 40; yRaqueteOponente += velocidadeYOponente }
function incluiPlacar() { fill(255) text(pontosJogador, 275, 30); text(pontosOponente, 320, 30); }
function marcaPonto() { if (xBolinha > 590) { pontosJogador += 1; }
if (xBolinha < 10){ pontosOponente += 1; } }
e o link de acesso: https://editor.p5js.org/mariaeugenia907/sketches/AJpshAPxW