Ocorreu um problema ao implementar o retorno de chamada de colisão no meu projeto. Eu gostaria de ter detecção entre dois objetos específicos. Tenho colisão normal, mas quero que um objeto pare ou mude de cor ou qualquer outra coisa quando colidir com outro. Eu escrevi o código do bullet wiki:
onde fallRigidBody é um corpo dinâmico - uma esfera e earthRigiBody é um corpo estático - StaticPlaneShape e sphere não tocam em earthRigidBody o tempo todo. Também tenho outros objetos que estão colidindo com a esfera e funciona bem. Mas o programa detecta colisão o tempo todo. Não importa se os objetos estão ou não colidindo.
Eu também adicionei após declarações de corpo rígido:
Então, alguém pode me dizer o que estou fazendo de errado? Talvez seja algo simples?
— sebap123
stackoverflow.com/questions/9117932/…
— Ciro Santilli deve ser o
Eu estou familiarizado com o JBullet, mas como é a porta java do original, o conceito deve ser o mesmo.
Pareceu-me que sempre há uma colisão com seu plano estático e outros objetos. Mas você precisa fazer algo apenas na colisão de objetos específicos. O que você precisa usar é o ponteiro do usuário da forma de colisão. Aqui está um pedaço de código do meu próprio mecanismo em java. Aqui GameEntity é a classe que envolvo meus objetos e CollisionListener é outra classe minha que eu uso para implementar o que a colisão faz. Também passo posições e colisões normais ao ouvinte para obter efeitos mais sofisticados.