Time for action – creating a new Windows game project
- In the Visual Studio window, open the File menu and select New Project...
- Under Project Type, make sure Visual Basic is selected as the language and that the XNA Game Studio 4.0 category 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.vb
file, which is the heart of your XNA game.
Tip
Back up 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.vb
. 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 that you will customize for any XNA project.
Right below the class declaration for Game1
is the class level declarations area. By default, this area contains two variables:
Private WithEvents graphics As GraphicsDeviceManager Private WithEvents spriteBatch As 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 spriteBatch
variable is an instance of this class, which we will use for all of our drawing purposes in SquareChase
.
The declarations area is the spot for any variables that need to be maintained outside of any of the individual methods discussed next, such as LoadContent
, Update
, and Draw
. In practice, any data that you need to keep track of throughout your game will be referenced in some way in your declarations section.