Le mode multijoueur
CHAPITRE 11
251
protected override void Draw(GameTime gameTime)
{
GraphicsDevice.Clear(Color.CornflowerBlue);
base.Draw(gameTime);
}
}
Identifier les parties en cours disponibles
Pour rejoindre une partie, vous devez d’abord rechercher une liste de parties disponibles.
Pour cela, vous disposez de la méthode statique Find() de la classe NetworkSession, ou
bien, si vous souhaitez utiliser des processus asynchrones, des méthodes BeginFind() et
EndFind(). Comme nous l’avons vu au chapitre 8, la méthode synchrone bloque le jeu,
alors que la méthode asynchrone effectue le traitement en arrière-plan. Là encore, vous
devez spécifier le type de partie réseau. Vous pouvez ajouter un paramètre NetworkSession
Properties, qui filtre la liste de parties disponibles.
Dans les deux cas, vous récupérerez une collection de AvailableNetworkSession de type
AvailableNetworkSessionCollection.
Pour rejoindre une partie, vous n’avez plus qu’à utiliser la méthode Join de la classe
NetworkSession.
Dans l’exemple suivant, si le joueur appuie sur la touche C (ou le bouton A de la manette
Xbox), un serveur est créé. S’il appuie sur S (ou B), le programme se recherche les
parties disponibles et, si la recherche retourne au moins un résultat, il s’y connecte.
Si le programme est client sur un serveur, il affiche le nom du serveur dans sa barre de
titre, sinon il affiche « Je suis le serveur » (figure 11-8).
Création, recherche de parties et connexion
public class Chapitre11_4 : Microsoft.Xna.Framework.Game
{
GraphicsDeviceManager graphics;
SpriteBatch spriteBatch;
NetworkSession session;
AvailableNetworkSessionCollection availableSessions;
public Chapitre11_4()
{
graphics = new GraphicsDeviceManager(this);
Content.RootDirectory = "Content";
Components.Add(new GamerServicesComponent(this));
}
protected override void Initialize()
{
base.Initialize();
}
=Labat FM.book Page 251 Vendredi, 19. juin 2009 4:01 16
Précédent

- 272/366

Suivant