We will begin by discussing the approach that we will use for the design. One of our core design decisions for this game is to use as few graphic files as possible, without sacrificing the look and feel of the game. If you look at the source graphics, we only have four images: a white button with a right arrow on it, a light bulb, a white "bulb glow" image, and a white square image 1 x 1 point in size. From those images, we will drive the entire game.
Structurally, we want separate classes for the bike and the button. The bike will handle all of its own movement, and the button class will send messages directly to the bike it is controlling, so there is very little direct interaction with the game layer itself. The walls will be generated from the white square graphic, using on-the-fly scaling to stretch the walls behind the bike. All walls will be stored inside the game layer, since there is substantial need to share the walls between the bikes.
We will also use a separate layer...