Time for action – creating a new Windows game project
In the Visual C# window, open the File menu and select New Project...
Under Project Type, make sure XNA Game Studio 4.0 is selected.
Under Templates, select Windows Game (4.0).
Name the project SquareChase (This will automatically update the Solution Name).
Click on OK:
What just happened?
Each of the XNA project templates is a series of files and settings that get copied to your new project folder. Included in this set of files is the Game1.cs
file, which is the heart of your XNA game.
Tip
Backup your projects
When you create your project, the Location field specifies where it will be saved. By default, Visual Studio creates a folder in your user documents area called Visual Studio 2010
to store both programs and configuration information. Under this folder is a Projects
folder that contains subfolders for each new project you create. Make backups of your projects on a regular basis. You do not want to lose your hard work to a disk failure!
Anatomy of an XNA game
The most basic XNA game will have all of its code contained in the file called Game1.cs
. This file is generated when you create a new project, and contains override declarations for the methods used to manage your game. In addition to the Game1 class' declarations area, there are five primary methods you will customize for any XNA project.
The declarations area
Right below the class declaration for Game1 is the class level declarations area. By default, this area contains two variables:
GraphicsDeviceManager graphics; SpriteBatch spriteBatch;
The graphics
object provides access to, not surprisingly, the system's video card. It can be used to alter the video mode, the size of the current viewport (the area that all drawing work will be clipped to if specified), and retrieve information about Shader Models the video card supports.
XNA provides the SpriteBatch class to allow you to (very quickly) draw 2D images (called "sprites") to the screen.
The declarations area is the spot for any variables that need to be maintained outside of any of the individual methods listed below. In practice, any data you need to keep track of throughout your game will be referenced, in some way, in your declarations section.