2
respostas

colisaoMinhaRaqueteBiblioteca

Olá pessoal, depois que adicionei a função colisaoMinhaRaqueteBiblioteca, a bolinha colide apenas do lado esquerdo, quando chega na borda direita, ela passa e some. Alguém poderia me ajudar?

//variaveis da bolinha let xBolinha = 300; let yBolinha = 200; let diametro = 30; let raio = diametro / 2;

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

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

let colidiu = false;

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

function draw() { background(0); mostraBolinha(); movimentaBolinha(); verificaColisaoBorda(); mostraRaquete(); movimentaMinhaRaquete(); //verificaColisaoRaquete(); colisaoMinhaRaqueteBiblioteca(); }

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 (){ rect(xRaquete, yRaquete, 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 colisaoMinhaRaqueteBiblioteca(){ colidiu = collideRectCircle(xRaquete, yRaquete, raqueteComprimento, raqueteAltura, xBolinha, yBolinha, raio); if(colidiu){ velocidadeXBolinha *= -1; } }

2 respostas

Bom dia, tenta colocar o if(colidiu), fora das " {}" da "function colisaoMinhaRaqueteBiblioteca".

function colisaoMinhaRaqueteBiblioteca(){ colidiu = collideRectCircle(xRaquete, yRaquete, raqueteComprimento, raqueteAltura, xBolinha, yBolinha, raio); }

if(colidiu){ velocidadeXBolinha *= -1; }

Obrigada pela ajuda!