Collisions et physique : créer un simulateur de vaisseau spatial
CHAPITRE 10
211
Vous pouvez à présent écrire le constructeur. Dans celui-ci, vous appellerez la méthode
LoadContent () de la classe parente, ainsi que la méthode Initialize ().
public Asteroid(ContentManager content)
: base(Vector2.Zero)
{
base.LoadContent(content, "asteroid");
Initialize();
}
Dernière chose, la méthode Update () où vous mettrez à jour la position de l’astéroïde et,
s’il sort de l’écran, où vous appellerez sa méthode Initialize().
public void Update(GameTime gameTime)
{
Position = new Vector2(Position.X + (speed.X *
➥gameTime.ElapsedGameTime.Milliseconds), Position.Y + (speed.Y *
➥gameTime.ElapsedGameTime.Milliseconds));
if (Position.X + Texture.Width < 0)
Initialize();
if (Position.X > ChapitreDix.SCREEN_WIDTH)
Initialize();
if (Position.Y > ChapitreDix.SCREEN_HEIGHT)
Initialize();
}
Vous n’avez plus qu’à utiliser ces deux classes. Il n’y a rien de spécial à souligner en ce
qui concerne la création du vaisseau du joueur. Vous stockerez les astéroïdes dans une
collection List<>. Pour faire apparaître un astéroïde toutes les x secondes, utilisez un objet
de type TimeSpan que vous remettrez à zéro à chaque ajout d’un nouvel objet à la liste.
La classe de base du jeu complétée
public class ChapitreDix : Microsoft.Xna.Framework.Game
{
public static int SCREEN_WIDTH = 512;
public static int SCREEN_HEIGHT = 748;
static int NEW_METEOR_TIME = 5;
GraphicsDeviceManager graphics;
SpriteBatch spriteBatch;
Player playerShip;
List asteroids = new List();
TimeSpan elapsedTimeSinceLastNewAsteroid = TimeSpan.Zero;
public ChapitreDix()
{
=Labat FM.book Page 211 Vendredi, 19. juin 2009 4:01 16
Précédent

- 232/366

Suivant