• Aucun résultat trouvé

TD Jeux Pervasifs

N/A
N/A
Protected

Academic year: 2022

Partager "TD Jeux Pervasifs"

Copied!
3
0
0

Texte intégral

(1)

Université de Nice – Sophia Antipolis S. Lavirotte 2015-2016

Polytech’Nice – Sophia Université de Nice – Sophia Antipolis

930, Route des Colles – B.P. 145 - 06903 Sophia Antipolis Cedex – France Tél : +33 (0)4 92 96 50 50 – Fax : +33 (0)4 92 96 50 55

http://www.polytech.unice.fr/

1

TD

Jeux Pervasifs

1 Description du Jeu

Nous souhaitons réaliser un embryon de jeu pervasif. Voici quelques explications sur les règles que nous souhaitons mettre en place.

1.1 Description des principes du jeu

Un joueur dispose d’un certain niveau d’énergie pour se déplacer. En fonction de l’endroit où il se trouve, il trouvera dans la ville des zones de ravitaillement en énergie ou bien des zones qui ne lui sont pas favorables et qui lui feront baisser son niveau d’énergie. Ces zones de gain ou de perte d’énergie ne sont pas connues { l’avance et ne sont pas localisée de manière fixe dans la ville. Ces zones, que nous nommerons « Energizer », dépendent d’autres joueurs et sont donc dynamiques.

1.2 Conséquences sur la mise en œuvre

Il n’est donc pas possible de faire a priori une cartographie de ces zones et donc de les programmer { l’avance dans le programme de jeu. Celles-ci devront donc être découvertes dynamiquement lors de l’exécution du jeu et de modifier le comportement de l’énergie en conséquence. Pour mettre en œuvre un prototype simplifié de ce jeu, nous allons dans un premier temps développer un service générique correspondant à ces dispositifs de gestion de l’énergie (positive ou négative), puis dans un deuxième temps, nous étudierons ce qui est nécessaire pour réaliser une application qui prend en compte dynamiquement des éléments.

2 Développement du Dispositif UPnP Energizer 2.1 Installation des élements nécessaires

2.1.1 Téléchargement de l’environnement de développement SharpDevelop

Nous allons faire notre programme { l’aide du langage de programmation C#. Nous avons donc besoin d’un environnement de programmation qui soit capable de compiler ce langage. Nous allons installer SharpDevelop :

http://www.sharpdevelop.net/OpenSource/SD/Download/#SharpDevelop3x

2.1.2 Téléchargement des outils nécessaires à la création d’un service UPnP

Pour nous simplifier le développement, nous allons utiliser les outils développés par Intel pour la création de service UPnP

1. Téléchargez les outils Developper Tools for UPnP Technologies. Ne prenez pas les outils sur le site d’Intel qui sont des versions plus anciennes. Téléchargez la dernière version sur OpenTools.

http://opentools.homeip.net/DeveloperToolsForUPnPTechnologies.msi?attredirects=0

2. Lancez l’outil « Device Spy », qui est un point de contrôle universel appelé UCP (Universal Control Point).

Cet outil permet de tester les invocations de commandes et les réceptions d’événements. Lancez le dispositif UPnP « Network Light ». Vous pouvez vérifier l’apparition et tester sa manipulation depuis

« Device Spy ».

2.1.3 Les outils pour la Technologie UPnP en vidéo

Pendant ce TD, vous êtes encouragés { consulter les vidéos en ligne des tutoriaux pour l’utilisation des outils de visualisation et les outils de création de services UPnP.

http://opentools.homeip.net/dev-tools-for-upnp/tutorial

(2)

Université de Nice – Sophia Antipolis S. Lavirotte 2015-2015

Polytech’Nice – Sophia Université de Nice – Sophia Antipolis

930, Route des Colles – B.P. 145 - 06903 Sophia Antipolis Cedex – France Tél : +33 (0)4 92 96 50 50 – Fax : +33 (0)4 92 96 50 55

http://www.polytech.unice.fr/

2

TD

Jeux Pervasifs

Maintenant que vous avez installé tout les éléments pour développer le premier élément du jeu, nous allons entrer dans le vif du sujet.

2.2 Dispositif Energizer

Nous allons débuter avec l’utilisation de l’outil Service Author pour décrire les deux services de notre dispositif UPnP Energizer.

Figure 1: Description du dispositif Energizer 2.2.1 Création du Service Region pour notre dispositif Energizer

Commencez par créer le service Region (voir la description du service du dispositif sur la figure ci-dessus). Ce service permet de déclarer la portée de la zone géographique de cet élément Energizer.

Vous veillerez à déclarer tout d’abord les 4 variables X, Y, Width et Height en variables événementielles. Bien entendu, la fonction GetRegion retournera la valeur des 4 paramètres alors que les 3 autres fonctions SetCenter, SetHW, SetZone permettront de mettre à jour ces données et utiliseront donc les variables déclarées.

Sauvegardez le service que vous venez de créer dans un document XML (Fichier/Enregistrer sous…). Nous utiliserons ce service un peu plus tard.

2.2.2 Création du Service ValFreq pour notre dispositif Energizer

Vous procéderez de la même manière pour la création du service ValFreq. Les deux variables Freq et Val sont événementielles. Les fonctions GetFreq et GetVal retournent respectivement la valeur Freq et Val alors que les fonctions SetFreq et SetVal permettent de définir ou modifier la valeur de ces variables via le paramètre passé aux fonctions.

De même n’oubliez pas de sauvegarder la définition de votre service avant de quitter l’outil.

2.2.3 Création du Dispositif Energizer par assemblage de Services

Utiliser le programme Device Builder pour créer votre dispositif et y attacher les services que vous venez de créer (inclure les fichiers générés par le Service Author). A l’aide de la vidéo, vous veillerez { ne pas oublier de spécifier les bons paramètres pour votre dispositif. Vous veillerez aussi à spécifier votre nom dans le champ

« Manufacturer », ce qui vous permettra plus tard de retrouver votre service parmi tous ceux qui fonctionnent.

(3)

Université de Nice – Sophia Antipolis S. Lavirotte 2015-2016

Polytech’Nice – Sophia Université de Nice – Sophia Antipolis

930, Route des Colles – B.P. 145 - 06903 Sophia Antipolis Cedex – France Tél : +33 (0)4 92 96 50 50 – Fax : +33 (0)4 92 96 50 55

http://www.polytech.unice.fr/

3

TD

Jeux Pervasifs

2.2.4 Génération du code pour le dispositif Energizer

Device Builder vous permet de générer le squelette de code correspondant à votre dispositif « Energizer ». Vous veillerez { choisir la génération de code pour l’environnement .Net C#. Vous modifierez le namespace du code généré: Energizer.

2.3 Implémentation du comportement du Dispositif

Le générateur de code a créé plusieurs classes. Etudier plus particulièrement le contenu du fichier SampleDevice.cs (code correspondant au dispositif) et les deux fichiers créés pour chacun des services (DvRegion.cs et DvFreqVal.cs).

Modifier le code pour implémenter les actions associées à votre dispositif. De simples messages dans la console textes permettront de vérifier le comportement correct de votre dispositif.

Le comportement à spécifier est le suivant : toutes les Freq millisecondes, la valeur Val doit être envoyée. Comme nous l’avons vu, UPnP ne permet d’émettre sous forme d’événement la valeur d’une variable que si sa valeur change. Il faudra donc, { l’aide d’un Timer, modifier la valeur Valtoutes les Freqmillisecondes pour remettre la valeur à 0 avant de remettre la valeur à émettre.

Voici quelques éléments à utiliser pour implémenter ce comportement : using System.Threading;

timer = new Timer(new TimerCallback(ValFreq_Emit));

private void ValFreq_Emit(object state) {

… // récupération de la valeur, passage à 0, remettre la valeur dans la variable }

Quand la valeur de la fréquence change (SetFreq), il faudra modifier la valeur du timer : timer.Change(int dueTime, int period)

 dueTime : délai d’attente en millisecondes avant l’appel de la méthode de rappel. Timeout.Infinite permet d’arrêter le timer et 0 permet de le relancer immédiatement.

 period : intervalle de temps, en millisecondes, entre les appels de la méthode de rappel spécifiée.

Pensez bien à vérifier la valeur Freq passée en paramètre à la fonction SetFreq. Si la valeur est positive, modifier le timer, si elle est nulle, arrêter le timer et si elle est négative, ne rien faire.

3 Utilisation des différents dispositifs UPnP dynamiquement

Maintenant que nous disposons d’autant de dispositifs Energizer que d’étudiants qui ont correctement réalisé la première partie de ce TD, nous allons tester le prototype de jeu { l’aide de WComp. Pour définir une nouvelle zone Energizer, lancez votre service et configurerez la valeur d’énergie (positive ou négative) et la fréquence { laquelle elle est envoyée. Le lancement de ce service est automatiquement détecté et relié { la barre d’énergie du joueur.

Nous avons donc spécifié un service paramétrable et réutilisable qui est automatiquement détecté par l’application de jeu qui gère l’énergie du joueur. Nous n’avons donc pas spécifié dans le jeu, ni la position, ni le nombre, ni le paramétrage de la zone d’énergie Energizer. Ce protype de jeu pervasif réagit donc bien automatiquement à son environnement.

Références

Documents relatifs

Souvent, l’organisation interne d’un projet complexe, comme c’est le cas par exemple pour la Casa del Fascio de Terragni, n’ont pas de précédents connus, et le fait

Placer la fenêtre flash de l’instrument verticalement à 90 degrés pour couvrir complètement les parties du corps devant être actionnées, lorsque le capteur cutané détecte la

En centrant son regard sur un support de presse massivement déconsidéré, mais massivement reçu (Nous Deux, parangon de la « presse du cœur »), il se proposera d’envisager un

La rémunération par Paiements pour Services Environnementaux s’adresse aux agriculteurs de prairies irriguées situées sur la plaine de la Crau, ainsi qu’à l’ensemble

La demande d’aide, qu’elle soit formulée par courrier adressé spontanément ou lors du retour du formulaire, doit parvenir à Pôle emploi services avant le 30

 En interaction avec le monde physique réel qui vous entoure – Basé sur 3 technologies de base..  Des

Utiliser le Device Builder pour générer le code en C# sous Visual Studio .Net du point de contrôle associée au dispositif UPnP « Network Light » des outils Intel

Décrire la