Développement XNA pour la XBox et le PC
250
• récupérer les paquets réseau entrants.
L’appel de cette méthode vous épargne les soucis de threads et de synchronisation que
vous auriez pu rencontrer en programmant vous-même la gestion du réseau.
Dans l’exemple suivant, nous allons créer une partie sur le réseau local lorsque le joueur
appuiera sur la touche C de son clavier. Notez que vous pouvez récupérer des informations
sur la partie grâce aux propriétés de l’objet NetworkSession. Dans le code ci-dessous, une
vérification de la propriété IsHost permet de déterminer si l’instance du programme
héberge la partie ou non.
Exemple de création d’une partie sur le réseau local
public class Chapitre11_Server : Microsoft.Xna.Framework.Game
{
GraphicsDeviceManager graphics;
SpriteBatch spriteBatch;
NetworkSession session;
public Chapitre11_Server()
{
graphics = new GraphicsDeviceManager(this);
Content.RootDirectory = "Content";
ServiceHelper.Game = this;
Components.Add(new KeyboardService(this));
Components.Add(new GamerServicesComponent(this));
}
protected override void Initialize()
{
base.Initialize();
}
protected override void LoadContent()
{
spriteBatch = new SpriteBatch(GraphicsDevice);
}
protected override void Update(GameTime gameTime)
{
if (ServiceHelper.Get().KeyHasBeenPressed(Keys.C) &&
➥session == null)
session = NetworkSession.Create(NetworkSessionType.SystemLink, 2, 31);
if (session != null)
{
if (session.IsHost)
Window.Title = "Je suis le serveur (" + session.SessionState
➥.ToString() + ")";
session.Update();
}
base.Update(gameTime);
}
=Labat FM.book Page 250 Vendredi, 19. juin 2009 4:01 16
250
• récupérer les paquets réseau entrants.
L’appel de cette méthode vous épargne les soucis de threads et de synchronisation que
vous auriez pu rencontrer en programmant vous-même la gestion du réseau.
Dans l’exemple suivant, nous allons créer une partie sur le réseau local lorsque le joueur
appuiera sur la touche C de son clavier. Notez que vous pouvez récupérer des informations
sur la partie grâce aux propriétés de l’objet NetworkSession. Dans le code ci-dessous, une
vérification de la propriété IsHost permet de déterminer si l’instance du programme
héberge la partie ou non.
Exemple de création d’une partie sur le réseau local
public class Chapitre11_Server : Microsoft.Xna.Framework.Game
{
GraphicsDeviceManager graphics;
SpriteBatch spriteBatch;
NetworkSession session;
public Chapitre11_Server()
{
graphics = new GraphicsDeviceManager(this);
Content.RootDirectory = "Content";
ServiceHelper.Game = this;
Components.Add(new KeyboardService(this));
Components.Add(new GamerServicesComponent(this));
}
protected override void Initialize()
{
base.Initialize();
}
protected override void LoadContent()
{
spriteBatch = new SpriteBatch(GraphicsDevice);
}
protected override void Update(GameTime gameTime)
{
if (ServiceHelper.Get
➥session == null)
session = NetworkSession.Create(NetworkSessionType.SystemLink, 2, 31);
if (session != null)
{
if (session.IsHost)
Window.Title = "Je suis le serveur (" + session.SessionState
➥.ToString() + ")";
session.Update();
}
base.Update(gameTime);
}
=Labat FM.book Page 250 Vendredi, 19. juin 2009 4:01 16
