3
respostas

Erro na colisão bolinha/raquete após ajuste de código

Olá!

Estou na etapa de criação da function para a colisão entre bolinha/raquete, no qual foi utilizado o código abaixo:

Insira aqui a descrição dessa imagem para ajudar na acessibilidadeApós essa etapa, o objetivo seria tornar o código mais legível a partir da criação de variáveis esquerdaBolinha, superiorBolinha e assim por diante. Entretanto, ao criá-las e substituí-las no código acima, tanto para a bolinha quanto para a raquete, a colisão deixou de existir, fazendo com que a bolinha passasse pela raquete.

(Utilizei nomenclaturas diferentes, porém contém as mesmas informações)

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade Aguardo respostas!

3 respostas

Mudei o código alterando o esquerdaBolinha para xBolinha - raio novamente e a colisão voltou. Insira aqui a descrição dessa imagem para ajudar na acessibilidadeSe alguém tiver alguma explicação, fique a vontade para responder!

Tive o mesmo problema. E fazendo a substituição sugerida, voltou a considerar a colisão, mas não considera a altura da raquete mais, fazendo como se houvesse colisão mesmo sem a raquete estar em contato com a Bolinha. Também não entendi. Parece que a proposta de tornar mais claro o código não deu muito certo no p5js...

Oi,

O problema é que os valores não se atualizam

// Variáveis da bolinha
let xBolinha = 300;
let yBolinha = 200;
let diametro = 20;
let raio = diametro / 2;

// Variáveis da raquete
let xRaquete = 5;
let yRaquete = 150;
let larguraRaquete = 10;
let alturaRaquete = 90;



/*
 Os valores das variáveis abaixo são definindos na inicialzação do jogo e
 NÃO SÃO MAIS ATUALIZADOS. 
 Serão os mesmos durante todo o jogo.
*/  
// Extremidades da bolinha
let esquerdaBolinha = xBolinha - raio; // 300 - 10 = 290
let superiorBolinha = yBolinha - raio; // 200 - 10 = 190
let inferiorBolinha = yBolinha + raio; // 200 + 10 = 210
let direitaBolinha = xBolinha + raio;  // 300 + 10 = 310

// Extremidades da raquete
let direitaRaquete = xRaquete + larguraRaquete; // 5 + 10 = 15
let superiorRaquete = yRaquete;                 // 150
let inferiorRaquete = yRaquete + alturaRaquete; // 150 + 90 = 240