E-Book, Englisch, 648 Seiten
Grootjans XNA 2.0 Game Programming Recipes
1. ed
ISBN: 978-1-4302-0514-2
Verlag: Apress
Format: PDF
Kopierschutz: 1 - PDF Watermark
A Problem-Solution Approach
E-Book, Englisch, 648 Seiten
ISBN: 978-1-4302-0514-2
Verlag: Apress
Format: PDF
Kopierschutz: 1 - PDF Watermark
In this book, XNA expert Reimer Grootjans brings together a selection of the hottest quick-start recipes in XNA programming for the Xbox and Windows PC. Advanced XNA programmers, experienced coders new to games development, and even complete beginners will find XNA Game Programming Recipes an invaluable companion when building games for fun or as commercial products. Numerous problem-solving recipes cover topics from cameras and angles, to textures, models, and lighting and shadowing, and will get you over the common hurdles encountered in both 2D and 3D XNA application design.
Riemer Grootjans received his degree in electronic engineering with a specialization in informatics at the Vrije Universiteit Brussel in Belgium. He is a member of a research team working toward a Ph.D, and is responsible for visualization of 3D data. For several years, Riemer has been maintaining a web site with tutorials for DirectX. Since the early beta stages of XNA in 2006, he has ported all his content to XNA and is helping more than 1,000 people on their path to XNA success every day. In July 2007 and 2008, he received the Microsoft 'Most Valuable Professional' Award for his contributions to the XNA community.
Autoren/Hrsg.
Weitere Infos & Material
1;Contents at a Glance;5
2;Contents;6
3;About the Author;10
4;About the Technical Reviewer;11
5;Acknowledgments;12
6;Introduction;13
7;Getting Started with XNA 2.0;15
7.1;1- 1. Install XNA Game Studio 2.0;15
7.2;1- 2. Start Your First XNA 2.0 Project;17
7.3;1- 3. Deploy Your XNA2.0 Game on Xbox 360;20
7.4;1- 4. Deploy Your XNA2.0 Game on Another PC;22
7.5;1- 5. Customize Game Loop Timing;24
7.6;1- 6. Make Your Code Plug-and- Play Using GameComponents;25
7.7;1- 7. Allow Your GameComponents to Communicate with Each Other by Implementing GameServices;29
7.8;1- 8. Save and Load Data to/ from a File;33
8;Setting Up Different Camera Modes in Your 3D World;39
8.1;2- 1. Set Up the Camera: Position, Target, and View Frustum;39
8.2;2- 2. Specify the Target of Your Camera;47
8.3;2- 3. Create a First- Person Shooter Camera: A Quake- Style Camera;53
8.4;2- 4. Create a Freelancer-Style Camera: Full 3D Rotation Using Quaternions;59
8.5;2- 5. Check Whether an Object Is in Sight of the Camera;66
8.6;2- 6. Detect Camera Collision Against Models, Walls, or Terrains;71
8.7;2- 7. Create a Camera Fly- by Action;74
8.8;2- 8. Remove the Solid Background Color: Skybox;84
8.9;2- 9. Draw Only the Parts of the Scene That Are in Sight of the Camera: Octree;96
8.10;2- 10. Use a Quadtree to Hide Parts of a Grid That Are Not in Sight;118
8.11;2- 11. Set Up a Post- Processing Framework;127
8.12;2- 12. Create a Blur/ Glow Post- Processing Effect;139
8.13;2- 13. Define an Orthogonal Projection Matrix to Generate a Depth Map of the Scene;149
9;Working with 2D Images/ Textures in XNA 2.0;158
9.1;3- 1. Display 2D Images: Load and Render Images Using the SpriteBatch Class;159
9.2;3- 1. Rotate, Scale, and Mirror an Image;164
9.3;3- 3. Render Transparent Images Using Layers;166
9.4;3- 4. Consider Performance When Using the SpriteBatch Class;170
9.5;3- 5. Display Text;173
9.6;3- 6. Create a 2D Menu Interface;175
9.7;3- 7. Create a Texture, Define the Color of Each Pixel, Save a Texture to a File;189
9.8;3- 8. Render the Scene into a Texture;191
9.9;3- 9. Extend the Image Content Processor;195
9.10;3- 10. Extend the Image Content Processor: Grayscale Conversion and Processor Parameters;208
9.11;3- 11. Make Your Scene More Impressive with Billboarding: Render 2D Images in a 3D World So They Always Face the Camera;212
9.12;3- 12. Create a 3D Explosion Effect/ Simple Particle System;233
9.13;3- 13. Create a Mirror: Projective Texturing;246
10;Working with Models;260
10.1;4- 1. Load and Render a Model Using the BasicEffect Class;261
10.2;4- 2. Set Different World Matrices for Different Objects, Combining World Matrices;265
10.3;4- 3. Find the Rotation Angle Corresponding to a Direction;271
10.4;4- 4. Use Acceleration to Control Velocity;273
10.5;4- 5. Construct the Global BoundingSphere Around a Model;278
10.6;4- 6. Scale the Model to a Predefined Size;280
10.7;4- 7. Render a Model Using Custom Effects and Custom Textures ( Easy Approach);282
10.8;4- 8. Visualize the Bone Structure of a Model;287
10.9;4- 9. Make the Bones Move Individually: Model Animation;294
10.10;4- 10. Use BoundingSpheres for Basic Model Collision Detection;299
10.11;4- 11. Use Ray- Traced Collision Detection for Small/ Fast Objects;305
10.12;4- 12. Extend the Model Content Processor to Load Custom Effects ( Clean Approach);308
10.13;4- 13. Gain Direct Access to Vertex Position Data by Extending the Model Processor;315
10.14;4- 14. Gain Direct Access to Vertex Position Data of Each ModelMesh by Extending the Model Processor;320
10.15;4- 15. Gain Direct Access to Vertex Position Data by Defining a Custom TypeWriter and TypeReader;325
10.16;4- 16. Store Multiple Objects in the Tag Property by Defining a Custom TypeWriter and TypeReader;335
10.17;4- 17. Correctly Tilt a Model Corresponding to the Terrain Underneath;342
10.18;4- 18. Detect Ray- Model Collisions Using Per- Triangle Checks;353
10.19;4- 19. Detect Whether the Pointer Is Over a Model;362
11;Getting the Most Out of Vertices;367
11.1;5- 1. Render Triangles, Lines, and Points in a 3D World;368
11.2;5- 2. Apply a Texture to Your Triangles;379
11.3;5- 3. Remove Redundant Vertices Using Indices;387
11.4;5- 4. Store Your Vertices and Indices in the Memory of Your Graphics Card Using a VertexBuffer and an IndexBuffer;391
11.5;5- 5. Store Your Vertices in a DynamicVertexBuffer for Frequently Updated Data;396
11.6;5- 6. Enable Backface Culling: What It Is and What It Can Do for You;399
11.7;5- 7. Automatically Calculate the Normals for All Vertices in a VertexBuffer;403
11.8;5- 8. Create a Terrain Based on a VertexBuffer and an IndexBuffer;409
11.9;5- 9. Calculate the Exact Height of a Terrain Between Vertices Using Bilinear Interpolation;419
11.10;5- 10. Calculate the Collision Point Between the Pointer and the Terrain: Surface Picking;425
11.11;5- 11. Extend the TextureProcessor to Generate a Terrain Object from an Image: Advanced DOM Objects;432
11.12;5- 12. Write a Custom Content Importer: Loading a Terrain from a CSV File;444
11.13;5- 13. Load Data from an XML File;451
11.14;5- 14. Create Your Own Vertex Format;457
11.15;5- 15. Introducing Bump Mapping: Fixed Normal;467
11.16;5- 16. Adding Per-Pixel Detail by Bump Mapping in Tangent Space;472
11.17;5- 17. Add an Ocean to Your 3D World;484
11.18;5- 18. Apply Catmull- Rom Interpolation in 3D to Generate Additional Vertices;497
11.19;5- 19. Create the Vertices for a Racing Track;501
12;Adding Light to Your Scene in XNA 2.0;511
12.1;6- 1. Define Normals and Use the BasicEffect;512
12.2;6- 2. Share Normals Between Vertices;518
12.3;6- 3. Add Higher Detail to Your Lighting: Per- Pixel Lighting;523
12.4;6- 4. Add Specular Highlights to Reflective Surfaces;526
12.5;6- 5. Add HLSL Vertex Shading;528
12.6;6- 6. Define a Point Light Using HLSL;534
12.7;6- 7. Add HLSL Per-Pixel Lighting;536
12.8;6- 8. Define a Spotlight Using HLSL;540
12.9;6- 9. Add HLSL Specular Highlights;542
12.10;6- 10. Add Multiple Lights to Your Scene Using Deferred Shading;547
12.11;6- 11. Add Shadowing Capability to Your Deferred Shading Engine;563
13;Adding Sounds to Your XNA 2.0 Project;571
13.1;7- 1. Play Simple . wav Sound Files;571
13.2;7- 2. Loop Sounds;575
13.3;7- 3. Play Sounds from a 3D Location Relative to the Camera: 3D Sound;579
14;Networking in XNA 2.0;583
14.1;8- 1. Sign In for Networking Services;583
14.2;8- 2. Create a Network Session;586
14.3;8- 3. Join a Networking Session;591
14.4;8- 4. Send/ Receive Data Over the Network;596
14.5;8- 5. Search for Networking Sessions Asynchronously;604
14.6;8- 6. Move from the Lobby to the Actual Game;607
15;Index;611




