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

bolinha nao colide com a raquete

boa noite, terminei a aula mas a bolinha n colide com a raquete e nao consigo achar o problema, alguem pode me ajudar por favor

//variáveis da bolinha let xBolinha = 300; let yBolinha = 200; let diametro = 30; let raio = diametro / 2 ; let colidir = false

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

//variaveis da raquete let xRaquete = 5 let yRaquete = 150 let lRaquete = 10 let aRaquete = 90

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

function draw() { background(0); mostraBolinha(); movimentaBolinha(); verificaColisaoBorda(); minhaRaquete(); movimentoMRaquete(); colisao(); //raquetada();

}

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 minhaRaquete(){

rect(xRaquete,yRaquete,lRaquete,aRaquete) } function movimentoMRaquete(){

if (keyIsDown(UP_ARROW)) { yRaquete -= 10; }

if (keyIsDown(DOWN_ARROW)){ yRaquete += 10; } } function raquetada(){

if (xBolinha - raio < xRaquete + lRaquete && yBolinha - raio < yRaquete + aRaquete && yBolinha + raio > yRaquete){ xBolinha *= -1; } }function colisao(){ colidir = collideRectRect(xRaquete, yRaquete, lRaquete, aRaquete, xBolinha, yBolinha, diametro); if (colidir){ velocidadeXBolinha *= -1; } }

4 respostas

Oi Pedro, bom dia, você importou aquele código que ele pediu na aula? Vi que o código que você utilizou ai é o collideRectRect (colisão retangulo x retangulo) e o certo seria o código collideRectCircle (que seria a colisão da bolinha com o retângulo). Não sei se seria esse o problema.

importei sim, mas mesmo assim n funcionou, sabe oq mais pode ser?

solução!

Vi que o código que você utilizou ai é o collideRectRect (colisão retangulo x retangulo) e o certo seria o código collideRectCircle (que seria a colisão da bolinha com o retângulo). Não sei se seria esse o problema.

nessa parte:

colidir = collideRectRect(xRaquete, yRaquete, lRaquete, aRaquete, xBolinha, yBolinha, diametro); if (colidir){ velocidadeXBolinha *= -1; } }

nosaaaa q erro feio kkkk, obg pela ajuda, vou prestar mais atençao