<< Chapter < Page
  Xna game studio     Page 4 / 9
Chapter >> Page >

Figure 12 . Heading for home.

missing image

Discussion and sample code

As usual, I will explain the code in this program in fragments. A complete listing of the class named Game1 is provided in Listing 11 near the end of the module.

The class named Game1

The class named Game1 begins in Listing 1 .

Listing 1 . Beginning of the class named Game1.

namespace XNA0124Proj { public class Game1 : Microsoft.Xna.Framework.Game {GraphicsDeviceManager graphics; SpriteBatch spriteBatch;private Viewport viewport; private Vector2 ufoPosition;private float backgroundScale; private float backgroundBaseScale;private float dynamicScale = 0.0f; int msElapsed;//Time since last new frame.int msPerFrame = 83;//30 updates per second Texture2D spaceTexture;//background imageTexture2D ufoTexture;//ufo image Vector2 spaceOrigin;//origin for drawing background

Listing 1 contains the declarations of several instance variables that will be used later in the program. I will explain their purpose when theyare used later.

The constructor for the class named Game1

The constructor for the class is shown in Listing 2 .

Listing 2 . The constructor for the class named Game1.

public Game1() {//constructor graphics = new GraphicsDeviceManager(this);Content.RootDirectory = "Content"; //Set the size of the game window, causing the// aspect ratio of the game window to match the // aspect ratio of the background image, which is// 640 wide by 480 high. graphics.PreferredBackBufferWidth = 450;graphics.PreferredBackBufferHeight = (int)(450.0*480/640);}//end constructor

Setting the size of the game window

The last two statements in Listing 2 set the size of the game window. You have seen code like this before in an earlier module. The only thing new here is the expression used to compute the value for the height of the gamewindow.

Maintaining the aspect ratio

The background image shown in Figure 3 is 640 pixels wide by 480 pixels high. When it is initially drawn, it will be scaled to a width of 450 pixels keepingthe same width to height ratio (the aspect ratio). The intent is that it will initially just fit inside the game window.

The expression used to compute the new height of the game window in Listing 2 causes the aspect ratio of the game window to match the aspect ratio of thebackground image.

The overridden LoadContent method

The overridden LoadContent method begins in Listing 3 .

Listing 3 . Beginning of the overridden LoadContent method.

protected override void LoadContent() { // Create a new SpriteBatch, which can be used to// draw textures. spriteBatch = new SpriteBatch(GraphicsDevice);//Load the two images. spaceTexture = Content.Load<Texture2D>("space"); ufoTexture = Content.Load<Texture2D>("ufo"); //Get a reference to the viewport.viewport = graphics.GraphicsDevice.Viewport;

The new material

The only thing that is new in Listing 3 is the last statement.

Viewport is a property of the GraphicsDevice class and is a Structure named Viewport .

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Xna game studio. OpenStax CNX. Feb 28, 2014 Download for free at https://legacy.cnx.org/content/col11634/1.6
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Xna game studio' conversation and receive update notifications?

Ask