Oi, eu estava fazendo a aula Jogos clássicos parte 1: Pong com Javascript. Em uma parte da aula, o programador exportou o arquivo de outra biblioteca (colisão raquete oponente)
Eu fiz isso e deu certo, mas então eu decidir fazer isso sem exportar o arquivo. Agora a bolinha fica se mexendo somente somente no eixo Y, como se estivesse presa, ela não consegue ir para os lados. Deve ter dado algum conflito entre os algoritmos, mas eu estou começando agora, não sei como resolver.
poderiam me ajudar?
segue o código a baixo
let xBola = 300; let yBola = 200; let diametro = 30; let raio = diametro / 2;
let velocidadeXBola = 6; let velocidadeYBola = 6;
//variaveis da raquete let xRaquete = 5; let yRaquete = 150; let wRaquete = 10; let hRaquete = 90;
//variaveis do oponente let xRaquete2 = 585 let yRaquete2 = 150 let wRaquete2 = 10 let hRaquete2 = 90 let velocidadeYOponente;
function mostraBola(){circle (xBola, yBola, diametro);
}
function movimentoBola(){ xBola += velocidadeXBola yBola += velocidadeYBola
}
function colisaoBorda(){
if (xBola + raio> width || xBola - raio < 0){ velocidadeXBola *= -1; }
if (yBola + raio> height || yBola - raio < 0){ velocidadeYBola *= -1 }
}
function mostrarRaquete(){ rect(xRaquete, yRaquete, wRaquete, hRaquete); }
function colisaobolaraqueteeu(){
if (xBola - raio < xRaquete + wRaquete && yBola - raio < yRaquete + hRaquete && yBola > yRaquete) velocidadeXBola *= -1; }
function mostrarRaqueteOponente(){ rect(xRaquete2, yRaquete2, wRaquete2, hRaquete2); }
function movimentoOponente(){ velocidadeYOponente = yBola - yRaquete2 - wRaquete / 2 - 60 yRaquete2 += velocidadeYOponente }
function colisaoRaqueteOponente(){
if (xBola - raio < xRaquete2 + wRaquete2 && yBola - raio < yRaquete2 + hRaquete2 && yBola > yRaquete2) velocidadeXBola *= -1; }
function setup() { createCanvas(600, 400); }
function draw() { background(0); mostraBola();
movimentoBola();
colisaoBorda();
mostrarRaquete();
minhaquetemov();
colisaobolaraqueteeu();
mostrarRaqueteOponente();
movimentoOponente();
colisaoRaqueteOponente();
}
function minhaquetemov(){
if (keyIsDown(UP_ARROW)){ yRaquete -= 10 } if (keyIsDown(DOWN_ARROW)){ yRaquete += 10 } }