Olá pessoal!
Após exportar o código de outra biblioteca, no contato com a raquete, a bolinha entra até a metade, depois volta.
Calculei o diâmetro e revisei o código mas continua assim.
Alguma sugestão?
Olá pessoal!
Após exportar o código de outra biblioteca, no contato com a raquete, a bolinha entra até a metade, depois volta.
Calculei o diâmetro e revisei o código mas continua assim.
Alguma sugestão?
Olá Walter, tudo bem? Espero que sim!
Analisei o código, e sugiro que tente usar o diâmetro ao invés de se referir ao raio. Sendo assim, você mudará a função colisaoMinhaRaqueteBiblioteca
que ficará dessa forma:
function colisaoMinhaRaqueteBiblioteca (){colidiu = collideRectCircle(xRaquete,yRaquete,raqueteComprimento, raqueteAltura,xBolinha,yBolinha,diametro);
if (colidiu) {velocidadexBolinha *=-1
}
}
E assim a bolinha não irá ultrapassar o limite da raquete.
Corrigi o código e aumentei o tamanho da raquete para que assim evite algum bug que possa ocorrer, também aumentei a velocidade da bolinha. Deixarei o código abaixo com as alterações e sugestões caso queira implementá-las
//variáveis da bolinha
let xBolinha = 300;
let yBolinha = 200;
let diametro = 20;
let raio = diametro/2;
//velocidade da bolilinha
let velocidadexBolinha = 4;
let velocidadeyBolinha = 4;
//variaveis da raquete
let xRaquete = 5
let yRaquete = 5
let raqueteComprimento = 12
let raqueteAltura = 80
let colidiu = true;
function setup() {
createCanvas(600, 400);
}
function draw() {
background(0); mostraBolinha()
movimentaBolinha()
verficaColisaoBorda()
mostraRaquete()
movimentaMinhaRaquete()
//verificaColisaoRaquete()
colisaoMinhaRaqueteBiblioteca();
}
function mostraBolinha(){circle (xBolinha, yBolinha, diametro)}
function movimentaBolinha(){xBolinha += velocidadexBolinha; yBolinha += velocidadeyBolinha;
}
function verficaColisaoBorda(){
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
}
}
Espero ter ajudado!
Caso surjam dúvidas, fico à disposição.
Abraços e bons estudos!