Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Não estou tendo colisão, poderia me ajudar? (sem biblioteca)

//variaves da Bolinha let xBolinha = 300; let yBolinha = 200; let diametro = 22; let raio = diametro / 2;

//variaves da raquete let xRaquete = 5 let yRaquete = 150 let raqueteComprimento = 10; let raqueteAltura = 90;

//variaves do oponente let xRaqueteOponente = 585; let yRaqueteOponente = 150; let velocidadeYOponente;

//velocidade da bolinha let velocidadeXBolinha = 2; let velocidadeYBolinha = 2;

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

function draw() { background(0); mostraBolinha(); movimentaBolinha(); verificaColisaoBorda(); mostraRaquete(xRaquete, yRaquete); movimentaMinhaRaquete(); verificaColisaoRaquete(xRaquete, yRaquete); 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 verificaColisaoRaqueteOponente(x, y){ if (xBolinha + raio > xRaqueteOponente && yBolinha - raio < yRaqueteOponente + raqueteComprimento && yBolinha + raio > yRaqueteOponente){ velocidadeXBolinha *= 1; } }

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

1 resposta
solução!

Como você está usando uma função pra cada elemnteo, talvez não precise usar (x,y) em verificaColisaoRaqueteOponente