Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Bolinha não reconhece, a minha Raquete e Atravessa a mesma.

Não usei o codigo da biblioteca, pois achei o mesmo muito confuso.Portanto decidi usar o meu mesmo.

****//variáveis da bolinha let xBolinha = 300; let yBolinha = 200; let diametro = 18; let raio = diametro / 2;

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

****//variáveis da raquete let xRaquete = 5; let yRaquete = 150; let raqueteComprimento = 10; let raqueteAltura = 90;

****//variáveis do oponente let xRaqueteOponente = 585; let yRaqueteOponente = 150; let velocidadeYOponente;

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

****function draw() { background(0); mostraBolinha(); movimentaBolinha(); verificaColisaoBorda(); mostraRaquete(xRaquete, yRaquete); movimentaMinhaRaquete(); verificaColisaoRaquete(); mostraRaquete(xRaqueteOponente, yRaqueteOponente); movimentaRaqueteOponente(); verificaColisaoRaqueteOponente();

}

****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(){ if (xBolinha + raio > xRaqueteOponente - raqueteComprimento && yBolinha - raio < yRaqueteOponente + raqueteAltura && yBolinha + raio > yRaqueteOponente){ velocidadeXBolinha *= -1; } }

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

Não sei onde esta o erro, acredito que esteja na "verificaColisaoRaquete".Alguem consegue me ajudar ?

2 respostas

Boa tarde Bruno, assim fica um pouco ruim de ver o seu códico... Manda o link para o acesso ou coloca ele dentro da area de código aqui do forum!

solução!

Muito tempo depois hein kkkk.

Meu erro estava na:

function verificaColisaoRaquete(){ if (xBolinha - raio < xRaquete - raqueteComprimento&& yBolinha - raio < yRaquete + raqueteAltura&& yBolinha + raio > yRaquete)

{ velocidadeXBolinha *= -1; }

}

Na primeira eu fiz o xRaquete - raqueteComprimento, com isso a bolinha não ia reconhecer a raquete como ponto de impacto, pois eu subtrai todo o seu comprimento, mas obrigado pela iniciativa na época, e desculpe não responder.