//parametro da bola
let xBola = 300;
let yBola = 200;
let diametroBola = 20;
let raio = diametroBola / 2;
//movimento da bola
let velocidadeXBola = 2;
let velocidadeYBola = 6;
//parametro da raquete
let xRaquete = 5;
let yRaquete = 150;
let comprimentoRaquete = 10;
let alturaRaquete = 90;
//parametro da raquete 2
let xRaquete2 = 585;
let yRaquete2 = 150;
let comprimentoRaquete2 = 10;
let alturaRaquete2 = 90;
let velocidadeYDaRaquete2
function setup() {
createCanvas(600, 400);
}
function draw() {
background(0);
mostrarBola();
movimentoDaBola();
verificarColisaoDasBordas();
raquete(xRaquete, yRaquete);
raquete(xRaquete2, yRaquete2);
movimentoDaRaquete();
movimentoDaRaquete2();
verificarColisaoComRaquete(xRaquete, yRaquete);
verificarColisaoComRaquete(xRaquete2, yRaquete2);
}
function mostrarBola() {
circle(xBola, yBola, diametroBola);
}
function movimentoDaBola() {
xBola += velocidadeXBola;
//yBola += velocidadeYBola;
}
function verificarColisaoDasBordas() {
if(xBola + raio > width || xBola - raio < 0) {
velocidadeXBola *= -1;
}
if (yBola + raio > height || yBola - raio < 0) {
velocidadeYBola *= -1;
}
}
function raquete(x,y) {
rect(x, y, comprimentoRaquete, alturaRaquete);
}
function movimentoDaRaquete() {
if (keyIsDown(UP_ARROW)) {
yRaquete -= 10;
}
if (keyIsDown(DOWN_ARROW)) {
yRaquete -= -10;
}
}
function verificarColisaoComRaquete(x,y) {
if (xBola - raio < x + comprimentoRaquete && yBola - raio < y + alturaRaquete && yBola + raio > y) {
velocidadeXBola *= -1;
}
}
function movimentoDaRaquete2() {
velocidadeYDaRaquete2 = yBola - yRaquete2 - comprimentoRaquete2 / 2 - 30;
yRaquete2 += velocidadeYDaRaquete2
}
olá, preciso de ajuda para entender mais sobre a logica. no jogo ping pong eu estava tentando colocar a colisão da bolinha nas duas raquetes usando esse codigo
function verificarColisaoComRaquete(x,y) {
if (xBola - raio < x + comprimentoRaquete && yBola - raio < y + alturaRaquete && yBola + raio > y) {
velocidadeXBola *= -1;
}
}
mais a bolinha fica travada no centro das duas raquetes, poderia me informa qual o erro no código e qual a forma certa de fazer e qual a logica por traz ?