Collisions et physique : créer un simulateur de vaisseau spatial
CHAPITRE 10
217
playerShip.Update(gameTime);
foreach (Asteroid asteroid in asteroids)
{
asteroid.Update(gameTime);
if (playerShip.Rectangle.Intersects(asteroid.Rectangle) &&
➥CollisionPerPixels(playerShip, asteroid))
{
playerShip.ResetPosition();
asteroids.Clear();
break;
}
}
elapsedTimeSinceLastNewAsteroid += gameTime.ElapsedGameTime;
if (elapsedTimeSinceLastNewAsteroid.Seconds >= NEW_METEOR_TIME)
{
asteroids.Add(new Asteroid(Content));
elapsedTimeSinceLastNewAsteroid = TimeSpan.Zero;
}
base.Update(gameTime);
}
Cette fois-ci, si vous testez le jeu, vous remarquez qu’il est possible d’effleurer les astéroïdes
sans problèmes de collisions (figure 10-5). Il ne vous reste plus qu’à compléter le jeu en
ajoutant par exemple un système de gestion du score.
Simuler un environnement spatial : la gestion de la physique
Votre simulation spatiale n’est pas encore parfaite : en effet, les déplacements des vaisseaux
ne semblent pas vraiment naturels et les astéroïdes n’entrent pas en collision entre eux…
Dans la deuxième partie de ce chapitre, vous allez apprendre à utiliser un moteur physique
pour simuler un environnement ressemblant à l’espace.
Choisir un moteur physique
En fait, le moteur physique est le module du jeu qui s’occupe du mouvement des objets, de la
manière dont ils interagissent les uns avec les autres (par exemple les collisions), ou encore
des comportements spéciaux qu’ils peuvent avoir (rebonds, frictions, déformations, etc.).
Certains jeux portent un intérêt énorme à la physique. Par exemple, dans Half Life 2, ou
encore dans Portal (ces deux jeux utilisent le même moteur physique Havok), le joueur
Figure 10-5
La détection de collision est maintenant plus précise
=Labat FM.book Page 217 Vendredi, 19. juin 2009 4:01 16
Précédent

- 238/366

Suivant