Les bases de la programmation 3D
CHAPITRE 12
293
Enfin, vous pouvez appliquer des translations au cube grâce à la méthode Create
Translation (). Cette méthode attend un objet de type Vector3. L’exemple suivant applique
des translations au cube en fonction des entrées clavier de l’utilisateur.
public void Update(GameTime gameTime)
{
Vector3 translation = Vector3.Zero;
if (Keyboard.GetState().IsKeyDown(Keys.Right))
translation = new Vector3(0.1f, 0, 0);
if (Keyboard.GetState().IsKeyDown(Keys.Left))
translation = new Vector3(-0.1f, 0, 0);
if (Keyboard.GetState().IsKeyDown(Keys.Up))
translation = new Vector3(0, 0, -0.1f);
if (Keyboard.GetState().IsKeyDown(Keys.Down))
translation = new Vector3(0, 0, 0.1f);
effect.World *= Matrix.CreateTranslation(translation);
}
Bien entendu, vous pouvez combiner les différentes transformations. Par exemple,
l’extrait de code suivant combine translations et modification de l’échelle (figure 12-27).
Figure 12-27
Le cube grossit et se déplace
=Labat FM.book Page 293 Vendredi, 19. juin 2009 4:01 16
CHAPITRE 12
293
Enfin, vous pouvez appliquer des translations au cube grâce à la méthode Create
Translation (). Cette méthode attend un objet de type Vector3. L’exemple suivant applique
des translations au cube en fonction des entrées clavier de l’utilisateur.
public void Update(GameTime gameTime)
{
Vector3 translation = Vector3.Zero;
if (Keyboard.GetState().IsKeyDown(Keys.Right))
translation = new Vector3(0.1f, 0, 0);
if (Keyboard.GetState().IsKeyDown(Keys.Left))
translation = new Vector3(-0.1f, 0, 0);
if (Keyboard.GetState().IsKeyDown(Keys.Up))
translation = new Vector3(0, 0, -0.1f);
if (Keyboard.GetState().IsKeyDown(Keys.Down))
translation = new Vector3(0, 0, 0.1f);
effect.World *= Matrix.CreateTranslation(translation);
}
Bien entendu, vous pouvez combiner les différentes transformations. Par exemple,
l’extrait de code suivant combine translations et modification de l’échelle (figure 12-27).
Figure 12-27
Le cube grossit et se déplace
=Labat FM.book Page 293 Vendredi, 19. juin 2009 4:01 16
