Développement XNA pour la XBox et le PC
154
Les méthodes asynchrones
Dans les exemples précédents, vous affichiez les détails des exceptions dans la barre de
titre des fenêtres. Ceci n’est pas très esthétique et reste peu pratique pour le joueur qui ne
remarquera pas forcément que le titre de la fenêtre à été modifié, surtout s’il joue en plein
écran… La solution est donc d’afficher le message dans la fenêtre du jeu : dans une
console ou bien dans une boîte de dialogue. Vous pourrez créer facilement une boîte de
dialogue si vous employez dans votre jeu un projet de GUI qui met ce genre d’éléments
à votre disposition, mais vous pouvez aussi simplement utiliser les Gamer Services.
La classe Guide possède une méthode BeginShowMessage (). Le tableau ci-dessous présente
les différents paramètres qu’elle attend.
Vous vous demandez sûrement à quoi sert le paramètre callback de type AsyncCallback.
Généralement, l’appel à une fonction se fait de manière synchrone, c’est-à-dire qu’aucune
autre instruction n’est exécutée avant que la fonction ne retourne une valeur :
1. Appel de la fonction.
2. Exécution de la fonction.
3. Le thread qui a appelé la fonction récupère la main.
Or, le traitement de certaines fonctions peut être assez long, notamment dans le cas des
fonctions d’entrées-sorties ou de communication à travers le réseau. Il est donc nécessaire
de les traiter en parallèle, c’est-à-dire de manière asynchrone.
Attention
La gestion du dossier de l’utilisateur dans un jeu sur la Xbox 360 peut s’avérer plus difficile que sous
Windows. En effet, il se peut par exemple qu’un joueur débranche le périphérique sélectionné en plein jeu.
Ne vous limitez donc pas sur l’utilisation de blocs try … catch.
Tableau 8-1 Paramètres de la méthode BeginShowMessage
Paramètre
Description
PlayerIndex player
Joueur concerné par la boîte de dialogue. Sous Windows, il ne peut
s’agir que du joueur 1.
String title
Titre de la boîte de dialogue.
String text
Contenu textuel de la boîte de dialogue.
IEnumerable buttons
Description à afficher sur chacun des boutons de la boîte de dialogue.
Il peut y avoir au maximum trois boutons.
Int focusButton
Index (zéro étant la valeur minimale) du bouton qui doit avoir le focus.
MessageBoxIcon icon
Type de l’icône à afficher avec la boîte de dialogue (Alert, Error, None,
Warning).
AsyncCallback callback
La méthode à appeler une fois que l’opération asynchrone est terminée.
Object state
Un objet créé par l’utilisateur pour identifier l’appel à la méthode.
=Labat FM.book Page 154 Vendredi, 19. juin 2009 4:01 16
Précédent

- 175/366

Suivant