DRAWING 2-D GRAPHICS
The easiest way to build a game is with 2-D drawing, where you paint flat images and text onto the screen. When we talk about 2-D game programming versus 3-D game programming, we're really talking about the set of APIs used to program the drawing code. A 2-D API is typically much simpler than a 3-D API, which entails a scene graph, lighting sources, camera positions, textures, shaders, and more!
When you build a 2-D XNA game, rendering images (that is, AKA textures) to the screen is the primary way of giving visual feedback to the user. XNA gives you a lot of ways to manipulate these images, by giving you control over the following:
- The position on the screen
- The size of the image
- The angle of the image (to point it at something else)
- Color tinting, to allow for some variation on the same reusable image
- Drawing order, so that backgrounds can be behind game objects and so on, giving the impression that something's in front of something else
- Transparency of images that are on top of other images
You use two classes when doing 2-D drawing on XNA. You use ContentManager to load images into memory, and you use SpriteBatch class to paint these images to the screen.
COMMON MISTAKES With XNA, you have to provide all your images ahead of time; there's no easy way to compose images together at runtime. Silverlight lets you put things together using rectangles, paths, ...