Após a conclusão do curso, eu reparei que pelo menos em meu código, a raquete do oponente sempre acerta a bolinha, gostaria de saber o que há de errado em meu código.
//Variaveis da bolinha
let xBolinha = 300;
let yBolinha = 200;
let diametroBolinha = 15;
let velocidadeXbolinha = 5;
let velocidadeYbolinha = 5;
let raioBolinha = diametroBolinha/2
//Variaveis da raquete
let xRaquete = 5;
let yRaquete = 150;
let larguraRaquete = 10;
let alturaRaquete = 80;
let colidiu = false;
//Variaveis da raquete do oponente
let xRaqueteOponente = 585;
let yRaqueteOponente = 150;
let velocidadeYOponente;
//Mostra os Pontos
let meusPontos = 0;
let pontosOponente = 0;
//Sons do jogo
let raquetada;
let ponto;
let trilha;
function preload()
{
trilha = loadSound("trilha.mp3");
ponto = loadSound("ponto.mp3");
raquetada = loadSound("raquetada.mp3");
}
function setup() {
createCanvas(600, 400);
trilha.loop();
}
function draw() {
background(0);
mostraBolinha();
movimentaBolinha();
verificaColisao();
movimentaRaquete();
mostraRaquete(xRaquete,yRaquete,xRaqueteOponente,yRaqueteOponente);
verificaAColisaoRaquete();
movimentaRaqueteOponente();
mostraPontos();
adicionaPontos();
function mostraBolinha()
{
circle(xBolinha,yBolinha,diametroBolinha);
}
function verificaAColisaoRaquete()
{
hit = collideRectCircle(xRaquete,yRaquete,larguraRaquete,alturaRaquete,xBolinha,yBolinha,raioBolinha);
hit2 = collideRectCircle(xRaqueteOponente,yRaqueteOponente,larguraRaquete,alturaRaquete,xBolinha,yBolinha,raioBolinha);
if(hit || hit2){
velocidadeXbolinha *= -1;
raquetada.play();
}
}
}
function mostraRaquete(x,y,x2,y2)
{
rect(x,y,larguraRaquete,alturaRaquete);
rect(x2,y2,larguraRaquete,alturaRaquete);
}
function movimentaBolinha()
{
xBolinha += velocidadeXbolinha;
yBolinha += velocidadeYbolinha;
}
function movimentaRaquete()
{
if(keyIsDown(UP_ARROW))
{
if(yRaquete + alturaRaquete/2 > 0){
yRaquete -= 10}
if(yRaquete + alturaRaquete/2 < 0){
yRaquete = 0;
}
}
if(keyIsDown(DOWN_ARROW))
{
if(yRaquete + alturaRaquete/2 < 400){
yRaquete += 10}
if(yRaquete + alturaRaquete/2 > 400){
yRaquete = 400;
}
}
}
function verificaColisao()
{
if(xBolinha + raioBolinha > width || xBolinha - raioBolinha < 0 ){
velocidadeXbolinha *= -1;
}
if(yBolinha + raioBolinha > height || yBolinha - raioBolinha <0){
velocidadeYbolinha *= -1;
}
}
function mostraPontos()
{
textAlign(CENTER);
textSize(16);
stroke(255);
fill(color(255,140,0))
rect(130,10,40,20);
rect(430,10,40,20);
fill(255);
text(meusPontos, 150, 26);
text(pontosOponente, 450, 26);
}
function adicionaPontos()
{
if(xBolinha < 10)
{
meusPontos += 1;
ponto.play();
}
if(xBolinha > 590)
{
pontosOponente += 1;
ponto.play();
}
}
function movimentaRaqueteOponente()
{
velocidadeYOponente = yBolinha - yRaqueteOponente - larguraRaquete/2 -30;
yRaqueteOponente += velocidadeYOponente;
}