A Chipmunk body represents an object in the Chipmunk virtual space. It can contain one or more Chipmunk shapes that represent the object’s geometry. There are two kinds of Chipmunk bodies:
For each Chipmunk body, you can specify how much mass it has. The more mass a shape has, the harder it is to move around and the heavier it becomes.
When you create shapes, you can specify whether they are boxes, circles, polygons, or segments (which are straight lines with a thickness). On each shape, you can set several properties, including the following:
To define which areas of a body interact with the rest of the world and those different surfaces, you need to add one or more Shapes to a body. There are 3 types of shapes available with Chipmunk: circle, segment and poly. Combining those 3 shape types you can define almost any area of interaction imaginable for your bodies. Obviously, shapes added to the same body don't produce collisions between themselves.
// Create our ball's body with 100 mass and infinite moment cpBody *ballBody = cpBodyNew(100.0, INFINITY); // Set the initial position ballBody->p = cpv(160, 250); // Add the body to the space cpSpaceAddBody(space, ballBody);
The main method of changing things on Chipmunk, just like in the real world, is to use and apply Forces. A force is a vector , you tell the strength along the XX and YY axis. To help working with vectors, Chipmunk comes with a library called cpVect that allows you to do the most common operations like multiplying vectors or projecting two vectors.