Collisions et physique : créer un simulateur de vaisseau spatial
CHAPITRE 10
213
asteroid.Draw(spriteBatch);
spriteBatch.End();
base.Draw(gameTime);
}
}
Vous pouvez à présent compiler et exécuter le jeu (voir figure 10-3). Cependant, sans les
collisions, ce n’est pas très intéressant d’y jouer…
Établir une zone de collision autour des astéroïdes
La méthode la plus simple pour tester si le vaisseau du joueur entre en collision avec un
astéroïde consiste à encadrer chaque élément par un rectangle, puis à tester si les rectangles
se coupent ou non.
Commencez par ajouter une propriété à la classe Sprite afin que les classes Player et
Asteroid puissent en bénéficier. Cette propriété devra créer un rectangle en fonction de
la position du Sprite et de la taille de sa texture. Pour que la classe reste générique, si la
variable sourceRectangle n’est pas nulle, utilisez-la plutôt que les dimensions de la
texture.
Figure 10-3
Les astéroïdes deviennent
vite très nombreux
=Labat FM.book Page 213 Vendredi, 19. juin 2009 4:01 16
CHAPITRE 10
213
asteroid.Draw(spriteBatch);
spriteBatch.End();
base.Draw(gameTime);
}
}
Vous pouvez à présent compiler et exécuter le jeu (voir figure 10-3). Cependant, sans les
collisions, ce n’est pas très intéressant d’y jouer…
Établir une zone de collision autour des astéroïdes
La méthode la plus simple pour tester si le vaisseau du joueur entre en collision avec un
astéroïde consiste à encadrer chaque élément par un rectangle, puis à tester si les rectangles
se coupent ou non.
Commencez par ajouter une propriété à la classe Sprite afin que les classes Player et
Asteroid puissent en bénéficier. Cette propriété devra créer un rectangle en fonction de
la position du Sprite et de la taille de sa texture. Pour que la classe reste générique, si la
variable sourceRectangle n’est pas nulle, utilisez-la plutôt que les dimensions de la
texture.
Figure 10-3
Les astéroïdes deviennent
vite très nombreux
=Labat FM.book Page 213 Vendredi, 19. juin 2009 4:01 16
