To make a 2D pool game, there are really only a few objects we will need to render on the screen. The table will be made of the side rails and the pockets. The rest of the table, as far as we are concerned, is just graphic fluff. Of course, we will need to build the 15 numbered pool balls and the cue ball. We will also need a cue stick, which we will create as a sprite but it will not be a body in the Box2D physics simulation. Why not? If we were to create the pool cue as a physics-enabled body, then we would have to consider the "unintended hits" of the pool cue running into other (non-cue ball) balls on the table. While this might happen on a real table, it is generally undesirable. Instead, we will use the pool cue as a visual "marker" of the planned shot, with the distance from the ball acting as our measure of the strength of the shot. Most of the interactions on the pool table will be handled by the Box2D simulation itself, so that will be the easy part.
We will focus...