Code: Select all
private static void DetectCollision()
{
int numManifolds = dynamicsWorld.getDispatcher().getNumManifolds();
for (int i=0;i<numManifolds;i++)
{
PersistentManifold contactManifold = dynamicsWorld.getDispatcher().getManifoldByIndexInternal(i);
CollisionObject obA = (CollisionObject)contactManifold.getBody0();
CollisionObject obB = (CollisionObject)contactManifold.getBody1();
int numContacts = contactManifold.getNumContacts();
for (int j=0;j<numContacts;j++)
{
ManifoldPoint pt = contactManifold.getContactPoint(j);
if (pt.getDistance()<0.f)
{
Vector3f ptA = new Vector3f();
Vector3f ptB = new Vector3f();
pt.getPositionWorldOnA(ptA);
pt.getPositionWorldOnB(ptB);
Vector3f normalOnB = pt.normalWorldOnB;
System.out.println("Collision!");
}
}
}
}
Code: Select all
private void update()
{
if(active)
{
dynamicsWorld.stepSimulation(1.0f / 60.0f);
DetectCollision();
}
}
p.s. using jbullet
p.s.s. sry for my bad english