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 – bouncing off the walls


  1. 1. Add the BuildBoundingBox() method to the Walls region of the Maze class as follows:

    private BoundingBox BuildBoundingBox(
        int x, 
        int z, 
        int point1, 
        int point2)
    {
        BoundingBox thisBox = new BoundingBox(
            wallPoints[point1], 
            wallPoints[point2]);
        thisBox.Min.X += x;
        thisBox.Min.Z += z;
        thisBox.Max.X += x;
        thisBox.Max.Z += z;
    
        thisBox.Min.X -= 0.1f;
        thisBox.Min.Z -= 0.1f;
        thisBox.Max.X += 0.1f;
        thisBox.Max.Z += 0.1f;
    
        return thisBox;
    }
  2. 2. Add the GetBoundsForCell() method to the Walls region of the Maze class:

    public List<BoundingBox> GetBoundsForCell(int x, int z)
    {
        List<BoundingBox> boxes = new List<BoundingBox>();
    
        if (MazeCells[x, z].Walls[0])
            boxes.Add(BuildBoundingBox(x, z, 2, 4));
    
        if (MazeCells[x, z].Walls[1])
            boxes.Add(BuildBoundingBox(x, z, 6, 5));
    
        if (MazeCells[x, z].Walls[2])
            boxes.Add(BuildBoundingBox(x, z...