आप की तरह
world.setContactListener(new ContactListener() {
@Override
public void beginContact(Contact contact) {
if(contact.getfixtureA.getBody().getUserData()=="body1"&&
contact.getfixtureB.getBody().getUserData()=="body2")
Colliding = true;
System.out.println("Contact detected");
}
@Override
public void endContact(Contact contact) {
Colliding = false;
System.out.println("Contact removed");
}
@Override
public void postSolve(Contact arg0, ContactImpulse arg1) {
// TODO Auto-generated method stub
}
@Override
public void preSolve(Contact arg0, Manifold arg1) {
// TODO Auto-generated method stub
}
});
beginContact()
विधि अपनी दुनिया वस्तु के लिए आवेदन कर सकते हैं setContactlistner
हमेशा फोन करेगा जब भी कोई शरीर किसी अन्य शरीर को ओवरलैप या स्पर्श करेगा। आप contact
ऑब्जेक्ट जैसे contact.getFixtureA().getBody().getUserData();
पर शरीर के बारे में जानकारी भी प्राप्त कर सकते हैं यदि आप उनके साथ कुछ करना चाहते हैं। और जब वे एक-दूसरे से अलग होते हैं EndContact()
विधि कहा जाएगा।
आशा है कि इससे मदद मिलती है।
स्रोत
2013-06-27 16:54:11
संबंधित: https://stackoverflow.com/questions/11062252/how-to-detect-collision-but-do-not-collide-in-box2d पूरी तरह से एक और शरीर के अंदर: https://gamedev.stackexchange.com/questions/27320/in-box2d-how-can-i-check-for-bodies-within-a-circle –