Não ocorre colisão, não consigo achar o erro no código. https://editor.p5js.org/Luiz14es/sketches/o1x_8dE_j
Não ocorre colisão, não consigo achar o erro no código. https://editor.p5js.org/Luiz14es/sketches/o1x_8dE_j
Oi Luiz, tudo bem com você?
Sinto muito que não está ocorrendo a colisão. Vamos resolver isso!
Analisando o código, é possível identificar o seguinte problema:
A função verificaColisao()
não está atualizando o valor da variável colisao. Dentro do loop for que percorre os carros, a variávelxCasao
é atualizada, mas a variável colisao
nunca recebe esse novo valor. Portanto, ela permanece sempre como false, mesmo que ocorra uma colisão.
Para corrigir o código, você deve atualizar o valor da variável colisao
dentro da função verificaColisao()
:
function verificaColisao(){
for(let i = 0; i < imagemDoCarros.length ; i++){
xCasao = collideRectCircle(xCarros[i], yCarros[i], comprimentoCarros, alturaCarros, xAtor, yAtor, 15)
if(xCasao){
colisao = true;
print("colidiu");
}
}
}
O código apresentado é escrito em JavaScript utilizando a biblioteca p5.js, que é uma biblioteca de JavaScript para facilitar a criação de arte e interação com gráficos e animações.
Analisando o código, é possível identificar o seguinte problema:
A função verificaColisao() não está atualizando o valor da variável colisao. Dentro do loop for que percorre os carros, a variável xCasao é atualizada, mas a variável colisao nunca recebe esse novo valor. Portanto, ela permanece sempre como false, mesmo que ocorra uma colisão. Para corrigir o código, você deve atualizar o valor da variável colisao dentro da função verificaColisao():
function verificaColisao(){
for(let i = 0; i < imagemDoCarros.length ; i++){
xCasao = collideRectCircle(xCarros[i], yCarros[i], comprimentoCarros, alturaCarros, xAtor, yAtor, 15)
if(xCasao){
colisao = true;
print("colidiu");
}
}
}
Agora, quando ocorrer uma colisão entre o ator e um dos carros, a variável colisao será atualizada para true, e a mensagem "colidiu" será impressa no console.
Espero ter conseguido ajudar, qualquer dúvida estou à disposição.