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.

image 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, ...

Get Beginning Windows® Phone 7 Application Development: Building Windows® Phone Applications Using Silverlight® and XNA® now with the O’Reilly learning platform.

O’Reilly members experience live online training, plus books, videos, and digital content from nearly 200 publishers.