Tutoriel de développement XNA / Partie II : Mon premier jeu avec XNA 4.0 (Part 1)

Article

 

Et voilà, ca y est, vous avez votre version du XNA Game Studio 4.0 installée, flambant neuve. L’émulateur Windows Phone 7 est lancé. Vous êtes maintenant prêt à créer votre premier jeu. La voie de la 2D étant la meilleure pour l’apprentissage, je vous propose d’en créer un.

Cette première partie sera dédiée à la création du projet et son premier lancement.

Créer un nouveau projet de jeu

Pour créer un jeu avec le framework XNA, rien de plus simple, vous devez d’abord créer un nouveau Windows Phone Game (4.0). Comme c’est notre premier jeu, nous allons lui donner un nom original : « MonPremierJeu ». Il ne reste plus qu’à cliquer sur « OK ».

newproject

Découverte

Nous voilà devant une page de code bien mystérieuse :

public class Game1 : Microsoft.Xna.Framework.Game

{

GraphicsDeviceManager graphics;

SpriteBatch spriteBatch;

public Game1()

{

graphics = new GraphicsDeviceManager(this);

Content.RootDirectory = « Content »;

// Frame rate is 30 fps by default for Windows Phone.

TargetElapsedTime = TimeSpan.FromTicks(333333);

}

/// <summary>

/// Allows the game to perform any initialization it needs to before starting to run.

/// This is where it can query for any required services and load any non-graphic

/// related content.  Calling base.Initialize will enumerate through any components

/// and initialize them as well.

/// </summary>

protected override void Initialize()

{

// TODO: Add your initialization logic here

base.Initialize();

}

/// <summary>

/// LoadContent will be called once per game and is the place to load

/// all of your content.

/// </summary>

protected override void LoadContent()

{

// Create a new SpriteBatch, which can be used to draw textures.

spriteBatch = new SpriteBatch(GraphicsDevice);

// TODO: use this.Content to load your game content here

}

/// <summary>

/// UnloadContent will be called once per game and is the place to unload

/// all content.

/// </summary>

protected override void UnloadContent()

{

// TODO: Unload any non ContentManager content here

}

/// <summary>

/// Allows the game to run logic such as updating the world,

/// checking for collisions, gathering input, and playing audio.

/// </summary>

/// <param name= »gameTime »>Provides a snapshot of timing values.</param>

protected override void Update(GameTime gameTime)

{

// Allows the game to exit

if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)

this.Exit();

// TODO: Add your update logic here

base.Update(gameTime);

}

/// <summary>

/// This is called when the game should draw itself.

/// </summary>

/// <param name= »gameTime »>Provides a snapshot of timing values.</param>

protected override void Draw(GameTime gameTime)

{

GraphicsDevice.Clear(Color.CornflowerBlue);

// TODO: Add your drawing code here

base.Draw(gameTime);

}

}

Analysons un peu cette classe. La classe Game1 est la base de tout nouveau projet de jeu. Elle comporte différentes méthodes que nous allons voir et qui sont appelées automatiquement selon le modèle suivant

modeleXNA

En premier lieu, le constructeur de la classe est appelé. Puis la méthode Initialize, dans laquelle toutes la variables vont être initialisées comme par exemple la taille d’affichage (480×800 sur WP7). En bref tout ce qui n’est du contenu à afficher sur l’écran.

Ensuite la méthode LoadContent est appelée, permettant d’initialiser toutes les textures qui seront affichées à l’écran, les sprites, les sons…

Nous arrivons maintenant au cœur du processus, la boucle Upload/Draw. A partir de maintenant on entre dans une boucle qui ne s’arrêtera qu’au moment de quitter le jeu.

Dans la méthode Update, on place la logique du jeu, c’est-à-dire comment réagit le jeu lorsque l’on appuie sur tel ou tel bouton ou que l’on touche à telle ou telle partie de l’écran.

La méthode Draw permet de gérer toute la logique d’affichage du jeu, c’est dans cette méthode que l’on affichera à l’écran les personnages ou le monde par exemple.

Lorsque l’on décide de quitter le jeu, en appuyant sur  la touche Back du téléphone par exemple, la boucle s’arrête et on entre dans la méthode UnloadContent. Cette dernière permet de « décharger » le contenu graphique.

Lancer le jeu

Trêve de blabla et place à l’action, lancez le Debug et découvrez enfin ce que donne votre premier jeu ! Un bel écran bleu par défaut, ce n’est pas fameux me direz vous, mais vous en avez déjà appris beaucoup sur la logique de création de jeu car tout va tourner autour de cette classe Game1 et de la boucle de jeu.

newTel

Dans le chapitre suivant, place au mouvement! Nous verrons comment afficher un Sprite à l’écran et le faire se déplacer grâce à l’écran tactile.

Partager:
  • Print this article!
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • E-mail this story to a friend!
  • FriendFeed
  • LinkedIn
  • Netvibes
  • Turn this article into a PDF!
  • Technorati
  • Twitter
  • Twitthis
  • MySpace
  • RSS
  • Wikio FR
  • Yahoo! Buzz
Catégories : L'agence, Techno
Commentaires

subscribe to comments RSS

2 commentaires pour cet article

  1. Salut,

    Je me suis permis d’ajouter ton blog au flux communautaire de notre site XNA Connection. J’espère que cela ne te dérange pas…

  2. Yann dit :

    Au contraire, cela me fait très plaisir sachant que j’ai beaucoup appris en consultant XNA Connection

N'hésitez pas á ajouter votre commentaire

* Champ obligatoire

+ de réseaux

 
Partager:
  • Print this article!
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • E-mail this story to a friend!
  • FriendFeed
  • LinkedIn
  • Netvibes
  • Turn this article into a PDF!
  • Technorati
  • Twitter
  • Twitthis
  • MySpace
  • RSS
  • Wikio FR
  • Yahoo! Buzz
 

Blog.tequilarapido.com est édité par l'agence tequilarapido.