28
2010
TUTORIEL NEOFORCE – PARTIE 1
Pré requis :
Visual studio C# 2008 ou Visual Express C#
XNA Game Library 3.1
La bibliothèque de contrôle Neoforce
Introduction :
Qu’est-ce que Neoforce ?
La bibliothèque Neoforce permet d’intégrer un système de GUI à votre application XNA, sans avoir a développer la votre, cette bibliothèque est entièrement personnalisable.
Un système de skins est à disposition dans la librairie, que nous verrons dans un autre tutoriel, vous pouvez créer des fenêtres, des boutons etc… sans trop de soucis et en peut de temps.
Téléchargement et installation :
Rendez vous sur le site de Neoforce et télécharger les neoforce controls ( version 0.6.1910.1437 actuellement ), elle fait environ 8mo, elle contient des exemples et une dll que l’on rajoutera à nos projets pour travailler.
http://www.tomshane.cz/neoforce/Downloads/tabid/56/Default.aspx
Une fois le téléchargement terminé il vous faut exécuter l’installation pour pouvoir utiliser votre contrôle.
Création et configuration du projet :
On ouvre notre IDE (Integrated Development Environment) soit visual studio pour les uns et visual express pour les autres.
Nous allons commencez par créer notre nouveau projet de type XNA.
On se retrouve alors avec notre premier jeu mais vide, on ne peux strictement rien faire et c’est bien dommage mais on va arranger ceci très rapidement.
Nous allons tout d’abord faire en sorte que notre pointeur de souris soit visible au sein de l’application.
Rajoutons la ligne suivante à la suite du code dans le constructeur de notre jeu (Game1)
IsMouseVisible = true;
Et voilà notre souris ne disparaît plus lorsque l’on rentre dans la fenêtre XNA, ce qui sera plus pratique pour gérer les différentes fenêtres du jeu.
On va ajouter le fichier TomShane.Neoforce.Controls.dll en référence à notre projet, celui-ci ce trouve par défaut dans le répertoire (C:\Program Files (x86)\Tom Shane\Neoforce Controls\Bin), sauf si vous avez décidé de l’installer autre part (Clic droit sur le dossier référence et faire ajouter).
Dans notre fichier Game1.cs on rajoute la directive
using TomShane.Neoforce.Controls;
Ce qui nous permettra d’utiliser pleinement le potentiel de la librairie.
On arrive à la fin de la partie d’intégration de Tomshane Neoforce à notre projet on va maintenant créer notre première fenêtre.
Création d’une fenetre
Nous allons commencer par ajouter la variable qui permettra de gérer les objets provenant de Neoforce
Manager manager;
A ajouter en dessous de la déclaration de “SpriteBatch spriteBatch”
Dans notre constructeur nous allons rajouter deux portions de codes :
IsFixedTimeStep = false; manager = new Manager(this, graphics);
La première ligne correspont au blocage du rafraichissement, celle-ci par défaut est à true ce qui si vous ne le mettez pas a false fera clignotez votre fenêtre avec l’utilisation de Neoforce.
La deuxième ligne permet d’instancier le manager avec en paramétre notre jeu et l’objet graphic.
N’oubliez pas de copier le répertoire skins (C:\Program Files (x86)\Tom Shane\Neoforce Controls\skins) dans votre dossier debug et release du projet sinon vous aurez droit à cette jolie fenêtre
Bon et maintenant ? et bien créons !
Dans la fonction LoadContent nous allons rajouter des informations pour créer notre fenêtre
protected override void LoadContent()
{
// Create a new SpriteBatch, which can be used to draw textures.
spriteBatch = new SpriteBatch(GraphicsDevice);
manager.Initialize();
Window maFenetre = new Window(manager);
maFenetre.Init();
maFenetre.Top = 50;
maFenetre.Left = 100;
maFenetre.Width = 300;
maFenetre.Height = 300;
maFenetre.Text = "Ma Fenetre";
manager.Add(maFenetre);
}
La ligne manager.initialize() permet d’initialiser le manger (C’est comme le port salut c’est écrit dessus)
Ensuite on crée et instancie notre fenêtre avec en paramètre le manager, puis on l’initialise et fournit des informations pour son emplacement et son nom, pour terminé on l’ajoute au manager.
Maintenant on compile et par magie !
C’est sublime non ? Ou pas en faite mais on a une fenêtre dans notre projet XNA.
Mais c’est pas super pratique si on crée plusieurs fenêtres faut tout faire à la main dans la page principale et comme on dit ça fait dégueulasse.
On va rajouter une classe nommée CFenetre.cs et on la complète comme suis :
using System;
using TomShane.Neoforce.Controls;
using Microsoft.Xna.Framework;
namespace TutoNeoforce1
{
public class CFenetre : Window
{
public CFenetre(Manager manager, String titre, Rectangle position)
: base(manager)
{
this.Text = titre;
this.Top = position.Y;
this.Left = position.X;
this.Width = position.Width;
this.Height = position.Height;
this.Init();
}
}
}
On se retrouve avec une classe qui permet de créer des fenêtres à la volé sans soucis.
On va modifier le LoadContent encore une fois
protected override void LoadContent()
{
spriteBatch = new SpriteBatch(GraphicsDevice);
manager.Initialize();
CFenetre maFenetre = new CFenetre(manager,"Ma Fenetre",new Rectangle(100,50,300,300));
manager.Add(maFenetre);
}
Et voila on compile une autre fois notre projet et on se retrouve avec la même fenêtre mais plus facilement, voyez toujours à long terme, les objets sont une source intarissable pour facilité la maintenance et la programmation.
Evolutions :
1) Mettre la classe CFenetre en abstraite et heritez de cette classe pour designé plus rapidement vos nouvelles fenetres.
2) Rajoutez des boutons
A Suivre :
Dans la prochaine partie du tutorial on commencera à utiliser les premiers contrôles ainsi que les événements sur eux.
Articles relatifs
-
xrosenton
-
Calixte35
-
Calixte35
-
Sonorhio
Survie
Catégories
- Andengine (5)
- Android (20)
- Application (1)
- Articles (1)
- Non classé (2)
- Programmation (30)
Nuage
Commentaires récents
- Paumé dans [Tutoriel Honeycomb] Partie 1 – Les actions bars
- Acesyde dans [Tutoriel android] Partie 3 – Une petite intention ?
- paul dans [Tutoriel Honeycomb] Partie 1 – Les actions bars
- Sne dans [Tutoriel android] Partie 3 – Une petite intention ?
- Vivien-57 dans [Tutoriel Android] Partie 13 – L’appareil photo
Archives
- janvier 2012 (2)
- novembre 2011 (1)
- octobre 2011 (3)
- juillet 2011 (3)
- juin 2011 (1)
- décembre 2010 (4)
- octobre 2010 (3)
- septembre 2010 (5)
- juillet 2010 (8)
- avril 2010 (6)

Un article de









