1
resposta

[Bug] Não ocorre colisão

Não ocorre colisão, não consigo achar o erro no código. https://editor.p5js.org/Luiz14es/sketches/o1x_8dE_j

1 resposta

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.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software