Book Image

XNA 4 3D Game Development by Example: Beginner's Guide

By : Kurt Jaegers
Book Image

XNA 4 3D Game Development by Example: Beginner's Guide

By: Kurt Jaegers

Overview of this book

Move beyond the world of flat 2D-based game development and discover how to create your own exciting 3D games with Microsoft XNA 4.0. Create a 3D maze, fire shells at enemy tanks, and drive a rover on the surface of Mars while being attacked by alien saucers."XNA 4 3D Game Development by Example: Beginner's Guide" takes you step-by-step through the creation of three different 3D video games with Microsoft XNA 4.0. Learn by doing as you explore the worlds of 3D graphics and game design.This book takes a step-by-step approach to building 3D games with Microsoft XNA, describing each section of code in depth and explaining the topics and concepts covered in detail. From the basics of a 3D camera system to an introduction to writing DirectX shader code, the games in this book cover a wide variety of both 3D graphics and game design topics. Generate random mazes, load and animate 3D models, create particle-based explosions, and combine 2D and 3D techniques to build a user interface."XNA 4 3D Game Development by Example: Beginner's Guide" will give you the knowledge to bring your own 3D game creations to life.
Table of Contents (16 chapters)
XNA 4 3D Game Development by Example Beginner's Guide
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface

Time for action – animating the rover


To animate the rover, perform the following steps:

  1. 1. Add several new fields to the Fields region of the Rover class to support wheel animation, as follows:

    Random rand = new Random(); 
    private float wheelRotation = 0f;
    private float wheelBounceDelta = 0.01f;
    private int wheelBounceRange = 20;
    private float[] wheelBounceTargets = new float[4] {0f, 0f, 0f, 0f} ;
    private float[] wheelBounceCurrent = new float[4] { 0f, 0f, 0f, 0f };
    private string[] wheelNames = new string[4] 
    {
        "r_back_wheel_geo",
        "l_back_wheel_geo",
        "r_front_wheel_geo",
        "l_front_wheel_geo"
    };
  2. 2. Add the Wheel Animation region and the GenerateWheelTarget() method to the Rover class as follows:

    #region Wheel Animation
    private void GenerateWheelTarget(int wheel)
    {
        float newBounceTarget = (float)rand.Next(0, wheelBounceRange+1);
        newBounceTarget -= wheelBounceRange / 2;
    
        wheelBounceTargets[wheel] = newBounceTarget / 100f;
    } 
    #endregion
  3. 3. Add the HasWheelReachedTarget...