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
}
}