Développement XNA pour la XBox et le PC
128
spriteBatch.Begin();
spriteBatch.DrawString(font, "test", new Vector2(0, 0), Color.White);
spriteBatch.End();
base.Draw(gameTime);
}
}
Afficher le nombre de FPS
Le nombre de FPS (Frames Per Second), c’est-à-dire la quantité d’images affichées par
seconde, deviendra vite une de vos plus grandes obsessions. En effet, plus ce nombre est
élevé, plus une animation semble fluide. Si vous effectuez un grand nombre de calculs
qui ralentissent l’apparition de chaque image, votre jeu risque de donner une impression
de saccades.
L’objectif de votre jeu devrait être d’avoisiner les 60 FPS. Par défaut, XNA bridera votre
jeu pour qu’il ne dépasse pas cette limite. Vous pouvez considérer que 30 FPS est également
acceptable, cependant, évitez de descendre en dessous de ce nombre. Pour information,
au cinéma, la norme est de 24 images par secondes.
La mesure du nombre de FPS permet de rapidement juger des performances de votre jeu.
Cependant, cela ne pourra pas vraiment vous aider pour optimiser votre code ou comparer
la vitesse de différents algorithmes.
Le composant que vous allez maintenant développer vous permettra d’afficher à l’écran
le nombre courant de FPS. Ajoutez une nouvelle classe au projet et faites-la dériver de
DrawableGameComponent. Préparez un objet de type SpriteBatch et un autre de type SpriteFont.
Il existe de nombreuses méthodes pour calculer le nombre d’images par seconde. La technique utilisée ici est celle proposée par Shawn Hargreaves sur son blog (http://blogs.msdn.com/
shawnhar/). Elle consiste à compter le nombre de passages dans la méthode Draw() puis, à
chaque seconde, en déduire le nombre de FPS. La classe TimeSpan est accessible dans
l’espace de noms System, n’oubliez pas de l’ajouter !
Composant d’affichage du nombre de FPS
class FPSComponent : DrawableGameComponent
{
SpriteBatch spriteBatch;
SpriteFont spriteFont;
int frameRate = 0;
int frameCounter = 0;
TimeSpan elapsedTime = TimeSpan.Zero;
public FPSComponent(Game game)
: base(game)
{
}
=Labat FM.book Page 128 Vendredi, 19. juin 2009 4:01 16
128
spriteBatch.Begin();
spriteBatch.DrawString(font, "test", new Vector2(0, 0), Color.White);
spriteBatch.End();
base.Draw(gameTime);
}
}
Afficher le nombre de FPS
Le nombre de FPS (Frames Per Second), c’est-à-dire la quantité d’images affichées par
seconde, deviendra vite une de vos plus grandes obsessions. En effet, plus ce nombre est
élevé, plus une animation semble fluide. Si vous effectuez un grand nombre de calculs
qui ralentissent l’apparition de chaque image, votre jeu risque de donner une impression
de saccades.
L’objectif de votre jeu devrait être d’avoisiner les 60 FPS. Par défaut, XNA bridera votre
jeu pour qu’il ne dépasse pas cette limite. Vous pouvez considérer que 30 FPS est également
acceptable, cependant, évitez de descendre en dessous de ce nombre. Pour information,
au cinéma, la norme est de 24 images par secondes.
La mesure du nombre de FPS permet de rapidement juger des performances de votre jeu.
Cependant, cela ne pourra pas vraiment vous aider pour optimiser votre code ou comparer
la vitesse de différents algorithmes.
Le composant que vous allez maintenant développer vous permettra d’afficher à l’écran
le nombre courant de FPS. Ajoutez une nouvelle classe au projet et faites-la dériver de
DrawableGameComponent. Préparez un objet de type SpriteBatch et un autre de type SpriteFont.
Il existe de nombreuses méthodes pour calculer le nombre d’images par seconde. La technique utilisée ici est celle proposée par Shawn Hargreaves sur son blog (http://blogs.msdn.com/
shawnhar/). Elle consiste à compter le nombre de passages dans la méthode Draw() puis, à
chaque seconde, en déduire le nombre de FPS. La classe TimeSpan est accessible dans
l’espace de noms System, n’oubliez pas de l’ajouter !
Composant d’affichage du nombre de FPS
class FPSComponent : DrawableGameComponent
{
SpriteBatch spriteBatch;
SpriteFont spriteFont;
int frameRate = 0;
int frameCounter = 0;
TimeSpan elapsedTime = TimeSpan.Zero;
public FPSComponent(Game game)
: base(game)
{
}
=Labat FM.book Page 128 Vendredi, 19. juin 2009 4:01 16
