Les bases de la programmation 3D
CHAPITRE 12
277
Cube cubeB;
public Chapitre12()
{
graphics = new GraphicsDeviceManager(this);
Content.RootDirectory = "Content";
}
protected override void Initialize()
{
float aspectRatio = graphics.GraphicsDevice.Viewport.Width /
➥graphics.GraphicsDevice.Viewport.Height;
Matrix.CreatePerspectiveFieldOfView(MathHelper.PiOver4, aspectRatio, 0.001f,
➥1000f, out projection);
Matrix.CreateLookAt(ref cameraPosition, ref cameraTarget, ref
➥cameraUpVector, out view);
cube = new Cube(graphics.GraphicsDevice, Vector3.Zero, 1, projection, view);
cubeB = new Cube(graphics.GraphicsDevice, new Vector3(-4, 0, 0), 3,
➥projection, view);
base.Initialize();
}
protected override void Draw(GameTime gameTime)
{
GraphicsDevice.Clear(Color.CornflowerBlue);
cube.Draw();
cubeB.Draw();
base.Draw(gameTime);
}
}
Déplacer la caméra
Maintenant que vous êtes capable de dessiner des formes 3D à l’écran, il faut encore que
vous permettiez au joueur de se déplacer dans ce monde. La caméra que nous allons créer
dans les lignes suivantes avancera si le joueur appuie sur la touche Haut, ou reculera si le
joueur presse la touche fléchée Bas, et tournera sur elle-même (autour de l’axe Y) si le
joueur presse les touches Gauche ou Droite.
Commencez par ajouter trois champs à la classe principale : un pour l’orientation de la
caméra, un pour la vitesse de déplacement de la caméra et un dernier pour la vitesse de
rotation de la caméra.
float cameraYaw = 0;
float moveSpeed = 0.1f;
float rotationSpeed = 0.05f;
=Labat FM.book Page 277 Vendredi, 19. juin 2009 4:01 16
Précédent

- 298/366

Suivant