1
resposta

Após fazer a variável movimentaRaqueteOponente

Fiz a função MovimentaRaqueteOponente e a bolinha está passando pelas duas raquetes.

let xBolinha = 300; let yBolinha = 200; let diametro = 25; let raio = diametro/2;

//velocidade da bolinha let velocidadexBolinha = 3; let velocidadeyBolinha = 3;

//variáveis da raquete

let xRaquete = 5; let yRaquete = 150; let raqueteComprimento = 10; let raqueteAltura = 90;

//variaveis do oponente

let xRaqueteOponente = 585; let yRaqueteOponente = 150; let velocidadeyOponente;

let colidiu = false;

function setup() { createCanvas(600, 400); }

function draw() {

background(0); mostraBolinha(); movimentaBolinha(); mostraRaquete(xRaquete, yRaquete); movimentaMinhaRaquete(); verificaColisaoBorda(); verificaColisaoRaquete(); verificaColisaoRaquete(xRaquete, yRaquete); colisaoMinhaRaqueteBiblioteca(); mostraRaquete(xRaqueteOponente, yRaqueteOponente); movimentaRaqueteOponente(); verificaColisaoRaquete(xRaqueteOponente, yRaqueteOponente);

function mostraBolinha(){ circle(xBolinha, yBolinha, diametro); }

function movimentaBolinha(){ xBolinha += velocidadexBolinha; yBolinha += velocidadeyBolinha; }

function verificaColisaoBorda (){ 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, raqueteComprimento, raqueteAltura); }

function movimentaMinhaRaquete(){ if (keyIsDown(UP_ARROW)) yRaquete -= 10;

if (keyIsDown (DOWN_ARROW)) yRaquete += 10; }

function verificaColisaoRaquete(){ if (xBolinha - raio < xRaquete + raqueteComprimento && yBolinha - raio < yRaquete + raqueteAltura && yBolinha + raio > yRaquete){ velocidadexBolinha *= -1; } }

function movimentaMinhaRaquete(){ if (keyIsDown(UP_ARROW)) yRaquete -= 10;

if (keyIsDown (DOWN_ARROW)) yRaquete += 10;

}

function colisaoMinhaRaqueteBiblioteca(){ colidiu; (xRaquete, yRaquete, raqueteComprimento, raqueteAltura, xBolinha, yBolinha, raio) if (colidiu){ velocidadexBolinha *= -1; } }

function verificaColisaoRaquete(x, y){ colidiu; (x, y, raqueteComprimento, raqueteAltura, xBolinha, yBolinha, raio) if (colidiu){ velocidadexBolinha *= -1;

}

}

function movimentaRaqueteOponente(){ velocidadeyOponente = yBolinha - yRaqueteOponente - raqueteComprimento /2 -30 yRaqueteOponente += velocidadeyOponente } }

1 resposta

Na função colisaoMinhaRaqueteBiblioteca tem um ponto e virgula depois de colisão, nesta parte colidiu; (xRaquete, yRaquete, raqueteComprimento, raqueteAltura, xBolinha, yBolinha, raio) if (colidiu){ velocidadexBolinha = -1; } }

Acho que se você trocar esse ; por um = e adicionar o coódigo da biblioteca vai funcionar, tipo colidiu = collideRectCircle(x, y, raqueteComprimento, raqueteAltura, xBolinha, yBolinha, diametro);