Primeiro, não pude baixar o arquivo, por isso optei por usar a primeira função ensinada. Tentei usar a função que colide com minha raquete para raquete do oponente, e substitui os valores correspondentes ao x e y da raquete do oponente, porem não obtive sucesso. Minha dúvida é, por que a mesma formula não pode funcionar para colisão em ambas raquetes? Tenho outras alternativas para fazer com que a bola colida com a raquete do oponente?
let xCircle = 300; let yCircle = 200; let diametro = 15; let raio = diametro / 2;
let xRect = 5; let yRect = 150; let largura = 10; let altura = 100
let xRectOponente = 585; let yRectOponente = 150; let velocidadeYoponente;
let velocidadeXcircle = 6; let velocidadeYcircle = 6;
function setup() { createCanvas(600, 400); }
function draw() { background(0); motraCircle(); motraRect(xRect, yRect); motraRect(xRectOponente, yRectOponente); movimentaCircle(); movientaRect(); colisao(); colisaoRect(); movimentaRectOponente(); colisaoRectOponente();
}
function motraCircle() { circle(xCircle, yCircle, diametro); }
function motraRect(x,y) { rect(x, y, largura, altura); }
function movimentaCircle() { xCircle += velocidadeXcircle; yCircle += velocidadeYcircle; }
function movientaRect() {
if(keyIsDown(87)) { yRect -= 10; } if(keyIsDown(83)) { yRect += 10; } }
function movimentaRectOponente() {
if(keyIsDown(UP_ARROW)) { yRectOponente -= 10; } if(keyIsDown(DOWN_ARROW)) { yRectOponente += 10; }
}
function colisao() {
if(xCircle > width || xCircle < 0) { velocidadeXcircle *= -1; }
if(yCircle > height || yCircle < 0) { velocidadeYcircle *= -1;} }
**function colisaoRect() {
if(xCircle - raio < xRect + largura && yCircle - raio < yRect + altura && yCircle + raio > yRect) {
velocidadeXcircle *= -1;
}
}
#