Collisions are an integral part of the physics engine. Algorithms used in Box2D are nicely optimized and we will take advantage of it. However, we will be adding and removing physics bodies during the game because it's usually a good idea to keep the number of bodies to a minimum. Even the best algorithms will take some time to calculate all collisions and too many bodies might mean a significant slowdown.
While adding bodies is usually easy and can be done without any problem, removing bodies must be done at a specific time and it is one of the most common culprits of strange crashes in games with physics.
Collisions are detected automatically by Box2D, and collision events are handled in a
contact listener. Here's an example of the simplest contact listener. Let's create a class called
MyContactListener in the
is.kul.learningandengine.scene package and let it implement the
public class MyContactListener implements ContactListener...