Skip to Main Content
Learning XNA 3.0
book

Learning XNA 3.0

by Aaron Reed
November 2008
Beginner content levelBeginner
510 pages
16h 24m
English
O'Reilly Media, Inc.
Content preview from Learning XNA 3.0

Movement and Rotation

In this section, we'll look at how to move and rotate objects in 3D. In your project, you have a cool triangle. If you want to move this object to the left a little bit, you can do so via the Matrix.CreateTranslation method.

A translation moves an object or a point in a direction specified by a vector. Thus, the CreateTranslation method takes a Vector3 as a parameter. It also has an override that accepts float values for X, Y, and Z.

Now, if you want to actually move your object and/or rotate it continuously rather than just have it change positions and sit still, you'll need a variable to represent your object's world. Create a Matrix variable at the class level in your Game1 class and initialize it to Matrix.Identity:

Matrix world = Matrix.Identity;

Then, modify the line of code in your Draw method where you set the BasicEffect.World property to use this new variable:

effect.World = world;

Next, add the following code to your Update method, just above the call to base.Update:

// Translation
KeyboardState keyboardState = Keyboard.GetState(  );
if (keyboardState.IsKeyDown(Keys.Left))
    world *= Matrix.CreateTranslation(−.01f, 0, 0);
if (keyboardState.IsKeyDown(Keys.Right))
    world *= Matrix.CreateTranslation(.01f, 0, 0);

Compile and run the game now, and you'll notice that when you press the left and right arrow keys, the object moves accordingly.

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

Learning XNA 4.0

Learning XNA 4.0

Aaron Reed
Beginning C# 7 Programming with Visual Studio 2017

Beginning C# 7 Programming with Visual Studio 2017

Benjamin Perkins, Jacob Vibe Hammer, Jon D. Reid

Publisher Resources

ISBN: 9780596154905Supplemental ContentErrata Page