XNA 4 3D Game Development by Example:Beginner's Guide
上QQ阅读APP看书,第一时间看更新

Our view of the world

Before we can place objects and geometry into our virtual representation of a 3D world, we need to come up with a way to describe to XNA how we are going to control the viewpoint of the player. In many 2D games, a simple Vector2 value is often enough to cover the requirements of the camera – assuming the 2D game needed a camera at all. The camera viewing a 2D world might only need to know how far across and down the game world the current view should be located. Other aspects of the view, such as the distance from which the player is viewing the action, may be fixed due to the size of the pre-drawn sprites representing the game environment and objects.

In contrast, we need a bit more information to define the camera in a 3D game. The fact that we need a third coordinate (the Z coordinate) should not be surprising; since we have moved from 2D to 3D, it only stands to reason that we need three coordinates to define a point. What may be less obvious, however, is that we also need a way to identify what direction the camera is pointing in. Two cameras in the same position will have very different views if they are pointed in opposite directions.

We will build the Camera class in several stages, adding more detail with each visit to the code file.