Home

Voir le rapport (25 pages)

image

Contents

1. IN BORD AUX 1 Sciences EAUX 1 Course de voiture en r seau DTN 27 mars 2011 Responsable M Serge Chaumette Auteurs Bruno Voisin Papa Samba Diop Eddy Chen Vidal Watat Table des mati res es e e e de e laa aa 2 II Rappel du sujet 4 2 44 4 4 Lu na e 3 IIT Technologies utilis es aa aaa a a 4 II 1 Choix technologiques 2 44 4 4 A A e e p w ea aa ae p e u h 4 1112 1 Installation de l environnement de d veloppement AO AE AA A A Os 4 A o a 4 ons 5 1112 2 Utilisation de SVN 5 EA E aN di ma a e 9 aa e a a aa a eea ea 9 A a 10 E N E E E a e 11 aa A A 11 1 3 2 Transfert des donn es 12 D en de cosmos es 13 V 4 Le wifi Ad boq aaa aaa a 14 V 5 Architect L 4 4 4 Sie a a 15 VI R sultats obtenus e 4 sa a has s hs sh 17 Se 18 ESA EEE 19 A a a a a a e e e 24 25 I Introduction L av nement des terminaux mobiles exigent d exp rimenter de nouvelles fa ons d impl menter les communications inter r seaux entre ces derniers avec une plate forme de d veloppement volu e La communication et la mobilit de ces terminaux entrainent une contrainte de connexion qui peut entraver le fonctionnement des applications install es dans ces terminaux Dans ce contexte il devient n cessaire d impl menter un concept qui permettra de r pondre aux pertes de connectivit qui pourront ventuellement se p
2. c est dire la position et le score du joueur Elle est utilis e par la m thode receiveData de la classe NetworkManager pour convertir les octets recus repr sentant la position et le score du joueur distant Elle est galement utilis e dans la m thode send Player pour pouvoir construire le paquet contenant le score et la position du joueur pass en param tre Flag DATA X 1 Score String 4 octets float 4 octets float 4 octets int 4 octets FIGURE 2 Diagramme des datagrammes Data La classe SynchData contient les coordonn es des obstacles et le pseudonyme du joueur distant et est utilis e pour la synchronisation cf section V 3 3 L envoi et 12 la r ception de ces donn es sont effectu s dans la m thode startSynchronizing de NetworkManager Flag Nombre Xobs1 Y obs1 XobsN Y obsN Pseudo SYND obstacles String int Float Float io Float Float String 4octets 4octets 4 octets 4 octets 4octets 4 octets 20 octets FIGURE 3 Diagramme des datagrammes SynchData V 3 3 Synchronisation Une fois la connexion r seau tablie il faut impl menter la synchronisation de fa on conforme afin de rendre transparent l utilisateur le changement de joueur adverse c est dire le passage du joueur virtuel au distant L autre sens est trivial le joueur virtuel garde les m mes donn es que le distant qui se d connecte Dans ce contexte il faudra synchroniser la position et le sco
3. ger et plus simple II 2 Utilisations Dans cette partie nous d crivons comment nous avons mis en uvre nos choix technologiques III 2 1 Installation de l environnement de d veloppement Android L installation de l environnement de d veloppement Android sous Eclipse est bien document e sur http developer android com donc facile mettre en place Installation du SDK 1 T l charger le SDK d Android pour Linux sur http developer android com sdk index html 2 D compresser et mettre jour la variable d environnement dans bashre 3 Mettre jour le SDK android update sdk Installation du ADT Plugin pour Eclipse Maintenant il faudra installer le plugin sous Eclipse Help gt Intall new software 1 dans la boite de dialogue cliquez sur le bouton Add dans la boite de dialogue Add site mettre un nom dans le champ name puis dans le champ location mettre l url https dl ssl google com android eclipse dans la boite de dialogue Aviable software cocher la case Developper Tools et cliquer sur Next dans la fen tre Install Details les plugins doivent tre pr sents Ensuite cli quer sur Next et enfin Finish Il faut ensuite red marrer Eclipse Ensuite il faut faire en sorte que Eclipse utilise le SDK 5 Aller dans Window gt Preferences 6 Choisir Android gauche 7 Dans le champs SDK Location cliquez sur Browse et s lectionnez le r pertoire dans lequel vous
4. avez install le SDK Android Cliquez sur Apply puis OK 111 2 2 Utilisation de SVN Nous avons cr un d p t SVN pour un travail collaboratif plus performant L URL d acc s au d p t SVN est svn ssh jaguar emi u bordeaux1 fr net travail uti brvoisin hidden svncoursedtn 1 Cr ez un nouveau projet Projet depuis SVN ou Checkout Projects from SVN Entrez PURL du d p t dans les informations de l emplacement du r f rentiel et cliquez sur Suivant Une authentification sur jaguar emi u bordeaux1 est n cessaire entrez votre login et votre mot de passe Il peut tre demand plusieurs fois Dans la s lection de la ressource Head Revision est d j coch cliquez sur Finish Choisissez de rechercher des projets Eclipse dans les sous dossiers de la res source et cliquez sur Finish Enfin cochez Extraire comme des projets dans l espace de travail et cliquez sur Finish Un mot de passe est demand pour s curiser le stockage Les actions relatives SVN update commit etc sont disponibles dans le menu Team apr s avoir fait un clique droit sur le projet ou un fichier du projet IV Description du travail r aliser Comme pr cis plus haut le travail consiste r aliser un jeu de course de voi ture en r seau sur des tablettes Android Pour cela nous devons impl menter une interface pour le jeu avec toutes les fonctio
5. AS 7050 FIGURE 10 Bouton wifi d sactiv 21 Trois boutons situ s sur le circuit adverse droite permettent de choisir le mode de synchronisation effectuer apr s une connexion Vous avez donc le choix entre une synchronisation instantan e instantan e cach e ou transparente CourseDTN FIGURE 11 Les boutons de synchronisation CourseDTN FIGURE 12 Synchronisation finale avec l obstacle permettant de g rer le score Il est noter que nous observons aussi al atoirement un brouillard qui cache le circuit pendant un court instant 22 FIGURE 13 Synchronisation instantan e cach e En touchant la voiture adverse en rouge vous pouvez afficher ou masquer le pseudonyme de l adversaire Gr ce au pseudonyme vous pouvez savoir si vous jouer contre un joueur virtuel dont le pseudo est Virtuel ou contre un joueur distant Pour arr ter de jouer appuyez sur le bouton retour ou back de la tablette Le menu du jeu s affiche Une pression suppl mentaire sur le bouton retour permet de quitter l application Au cas ou la connexion wifi ne fonctionnerait pas il faudra juste reconfigurer celui ci dans le menu Setting de la tablette tout en d finissant le r seau choisi pour pouvoir se connecter avec un tiers utilisateur 23 IX Conclusion Ce projet de course de voiture en DTN nous a permis de mettre en oeuvre une application transparente aux connexions et d connexions Tous les
6. Les trois modes de synchronisation sont impl ment s et disponibles Nous avons effectu des tests avec trois tablettes la connexion entre les deux tablettes n est pas perturb e et le troisi me joueur joue contre le joueur virtuel Ce dernier est en attente d une d connexion Lorsque l un des deux joueurs se d connecte le troisi me joueur prend sa place de fa on transparente Nous avons aussi test la d connexion par loignement Nous avons constat que plus le joueur s loigne plus des paquets sont perdus et plus il y a des d connexions et reconnexions r p titives Malgr ces d connexions l application reste stable 17 VII Travail restant faire et extensions possibles Les objectifs dress s dans le cahier des charges ont t atteints Etant donn que notre application se joue dans un r seau Ad hoc il serait judicieux de pouvoir cr er un r seau Ad hoc directement partir des tablettes Mais il s av re que les tablettes que l on nous a fourni ne permettent pas de cr er un r seau En effet la version 2 1 de Android est celle qui est install e dans nos tablettes Cette version ne permet pas d installer des applications Wifi Tether qui sont sous la version 2 2 Une autre solution serait de recup rer les sources d Android et de les compiler ce que nous avons fait Mais le manque de documentation sur ce sujet ne nous permet pas de savoir comment l installer Par ailleurs d ventuelles extensions pe
7. de l adresse de broadcast est n cessaire car c est elle qui permettra d envoyer un message de d couverte toutes les ta blettes connect es sur le r seau C est d ailleurs la raison pour laquelle elle a t appel e dans le constructeur de NetworkManager et dans la m thode sendBroad cast qui sera renvoy e chaque fois que l application cherche se connecter un autre joueur V 3 1 Connexion L tablissement de la connexion se fait de la m me fa on qu en TCP gr ce aux m thodes sendSyn sendSynAck et sendAck Ces m thodes sont appel es dans la m thode connexion pour envoyer les paquets relatifs la connexion Une socket de reception est ouverte avec un timeout Si elle re oit un SYN un SAC Syn Ack est envoy et si elle re oit un SAC un ACK est envoy pour que la connexion soit d finitivement tablie Si un des paquets qui doivent tre re u pour la connexion n est pas re u apr s un certain timeout alors la connexion est abandon et on recommence 11 Tablette A Tablette B FIGURE 1 Diagramme de la connexion V 3 2 Transfert des donn es La classe ByteArrayUtil permet de convertir les donn es qui sont des float ou des int en octet et vice versa Cette classe sera utile la classe Data et SynchData qui se chargent de transformer des informations en octets afin de pouvoir les envoyer sur le r seau Data contient les donn es envoyer ou recevoir p riodiquement
8. du pseudonyme Le bouton Jouer lance la partie Si le bouton jouer est activ sans qu un pseudonyme ne soit entr un message d alerte s affiche vous indiquant d entrer un pseudonyme D CourseDTN Entrez un pseudo contenant au moins 1 et au plus 20 caract res Fermer FIGURE 8 Message d alerte L interface du jeu est d fini par deux circuits gauche et droite identifiant respectivement le joueur local vous assimil la voiture blanche et le joueur virtuel ou l adversaire distant assimil la voiture rouge Sur chaque circuit au plus haut nous avons de la gauche la droite le pseudo et le score Donc dans le circuit de gauche on a le pseudo local et le score local et dans le droit le pseudo adverse et le score adverse 20 CourseDTN AO peu 20000 Adv EA 100000 k l FIGURE 9 Interface du jeu Le but du jeu est d esquiver les obstacles en forme de rochers en effectuant des mouvements d inclinaison de la tablette afin bouger la position de la voiture Votre score d pend de votre habilit esquiver les obstacles Sur le circuit gauche le bouton Wifi identifi par son logo permet d activer et de d sactiver la couche r seau La couleur bleue indique que le r seau est actif et la couleur rouge qu il est inactif Lorsque le r seau est actif un joueur utilisant la m me application peut tout moment se connecter et devenir votre adversaire CourseDTN AR
9. e jour des obstacles ne soit pas visible l utilisateur on effectuera les changement uniquement dans la partie non affich e du circuit La partie nouvellement affich e du circuit contient donc les obstacles du joueur distant La partie sortant de l cran est mise jour jusqu ce que le circuit corresponde tota lement au distant Le score pour synchroniser le score nous allons placer un obstacle sp cial in vitable la limite de la partie visible de l cran devant la voiture Lorsque la voiture entre en collision avec cet obstacle le score r el du joueur distant sera affect au joueur distant Des obstacles sp ciaux seront affich s de fa on al atoire pour ne pas se rendre compte d une synchronisation V Aspects techniques Nous allons d tailler les aspects techniques en trois parties La premi re concerne impl mentation de la logique du jeu la deuxi me l interface graphique et la troisi me le r seau V 1 Le jeu Le jeu est impl ment par la classe Gamelmpl dont l interface est Game Il peut contenir plusieurs niveau classe Level Les m thodes start et stop permettent respectivement de d marrer et arr ter le jeu Le jeu d marr avance pas pas gr ce la m thode onStep appel e p riodiquement avec un certain d lai 30 millisecondes d fini dans la classe Config Un niveau comporte deux circuits interface Circuit L un est celui du joueur local et l autre de l adversaire Cha
10. es chacune d crit par un fichier XML qui d finit les l ments graphiques La premi re res layout main xml est un simple menu permettant de saisir son pseudonyme et de lancer le jeu via un bouton Jouer La deuxi me res layout game xml est la vue du jeu Elle est constitu e de deux vues gauche le circuit du joueur local et droite celui du joueur distant ou virtuel Ces deux vues sont des CricuitViews Tout l affichage d un circuit obstacles et voiture compris se fait dans la classe CircuitView La position sur l axe des y de la voiture reste constante l cran et l affichage du reste se fait par rapport la position de la voiture dans le circuit Les obstacles vont donc descendre l cran mais leur position r elle est fixe Le pseudonyme et le score sont affich s en haut de l cran La difficult surmontable est le changement de rep re entre les coordonn s du jeu et celles de la vue cran qui de plus bouge sur l axe des y La direction de l axe des y est invers e dans le rep re du jeu par rapport celui de la vue L interface est aussi consitu e de boutons Dans la partie gauche c est dire celle du LocalPlayer un bouton avec l ic ne du wifi est pr sent permettant d activer ou de d sactiver le wifi Dans la partie droite trois boutons permettent de bascu ler sur les trois modes synchronisation tay s dans la partie suivante cf section V 3 3 Un bouton est pr sent sur la voi
11. insi remplacer le joueur virtuel Les deux voitures doivent aussi se communiquer p riodiquement leur position et leur score Nous devons aussi g rer la d connexion et la reconnexion des joueurs Autrement dit un joueur doit pouvoir se d connecter via un bouton de l interface et se reconnecter de fa on transparente l utilisateur Il semble donc n cessaire d laborer un algorithme de synchronisation afin de pouvoir assimiler les points importants de cette partie Une fois la connexion tablie la synchronisation commence imm diatement Il y a trois points trait s lors de cette synchronisation e La position nous allons synchroniser la position uniquement sur l axe des x gauche droite La synchronisation en y peut tre trait e avec les obstacles On remplace imm diatement le joueur virtuel par le joueur distant mais on ne lui affecte pas tout de suite la position re ue On contr le sa position jusqu ce qu elle corresponde celle re ue Si la position re ue est gauche par rapport la position affich e on se d place sur la gauche si elle est droite on se d place droite Ceci jusqu faire correspondre les deux positions La synchronisation est finie on peut continuer normalement c est dire affecter la position re ue celle du joueur distant Les obstacles cette partie est la plus difficile Les obstacles du joueur dis tant sont re u d s le d but de la synchronisation Pour que la mis
12. joueur distant n est plus en mode de synchronisation et se voit affect directement la position x re ue p riodiquement Pour la synchronisation des obstacles la difficult vient du fait que les joueurs n ont pas la m me position dans le circuit On calcule donc le saut qui est la dis tance entre la position y de la voiture repr sentant le joueur distant localement et la position y r el de la voiture distante Il faut donc ins rer les obstacles en ajou tant ce saut leur position y pour avoir le m me affichage sur les deux tablettes La position y de la voiture re u via le r seau doit aussi prendre en compte ce saut Ainsi il y a un d calage entre les deux circuits mais l affichage est le m me On vite ainsi que la voiture fasse un saut dans le circuit Le score distant re u est ignor tant que la voiture n a pas rencontr l obstacle sp cial ajout en haut de l cran au d but de la synchronisation Des obstacles sp ciaux sont aussi ajout s selon une certaine probabilit et repr sente un cer tain nombre d obstacle vit s ou non La rencontre d un tel obstacle simulera une collision ou une esquive d obstacles ordinaires pour changer la valeur du score V 4 Le wifi Ad hoc Le Wifi en mode ad hoc n a pas besoin d un point d acc s comme le mode en infrastructure La connexion est directe entre plusieurs tablettes Ce mode est donc id al pour jouer un jeu en r seau local sans fil n importe o Mais les d vel
13. mentant la partie r seau de l application Nos avons utilis des interfaces Game Level Circuit et Player et une factory pour permettre le changement facile de l impl mentation La figure 4 page 16 est le diagramme de classe En vert sont repr sent es des classes de API Android que nous utilisons Quelques remarques peuvent tre faites sur cette architecture L interface Level a t con ue pour pouvoir encha ner plusieurs niveaux Elle n est en fait pas utile dans notre jeu puisque nous avons qu un seul niveau De plus les deux paquetages sont en doubles d pendances Il est pr f rable de n avoir qu une d pendance Enfin la classe NetworkManager grossi progressivement au fil du d veloppement Pour un souci de clart donc de maintenance il est n cessaire de faire du refactoring pour s parer la gestion des sockets et la synchronisation dans deux classes distinctes 15 ubx1 project game start void getCircuitLeft Circuit A lt lt A A gt gt gt a X ASAsAsss stop void getCircuitRight Circuit getLength float oneStep void getSize float getPLayer Player setPLayer p Player void add0bstacle x float y float obs Obstacle void getObstacles HashMap lt Coordinate Obstacle gt oneStep void lt lt Interface gt gt Player Coordinate x float y float Fi 4 onAccuracyChanged s Sensor accuracy int void onSensorChanged even
14. nnalit s demand es par le sujet Au d marrage de l application nous devons avoir une interface qui permet au joueur d entrer son pseudonyme et d appuyer sur le bouton Jouer pour d marrer le jeu Une fois sur le jeu la vue de la tablette sera divis e en deux parties La partie gauche repr sentant le joueur local et la partie droite repr sentant le joueur distant ou virtuel De plus le jeu sera constitu d un circuit g n rant des obstacles en forme de rocher position al atoire Si la voiture heurte un obstacle elle change de couleur et le joueur perd des points Le calcul du score ne doit pas d pendre du temps de jeu mais de l habilit du joueur Cela permet de rendre la partie quitable entre un joueur qui vient de se connecter et un joueur qui a dur dans le jeu Nous devons aussi mettre en place le gyroscope En d autres termes le joueur local doit pouvoir modifier la position de la voiture par le mouvement d inclinaison de la tablette La deuxi me grande partie du travail consistera mettre en place le r seau dans notre application Il faudra d abord impl menter la gestion de r seau Wifi ad hoc qui n est pas faite sous Android Une fois que la connexion Wifi ad hoc tablie le joueur local qui joue avec le joueur virtuel envoie aussi des broadcasts UDP afin de savoir s il y a un autre joueur qui s est connect au jeu Ainsi ce joueur distant devra se synchroniser de mani re transparente et a
15. nnexion ou des messages chang s entre les tablettes peuvent tre per dus mais ceci ne doit pas tre visible pour les utilisateurs la machine prend le relai de l utilisateur non accessible et la course se poursuit de mani re transparente Lorsqu une connexion d faillante est r tablie ou remplac e par une connexion avec un autre utilisateur que l utilisateur original application vue des uti lisateurs doit l aussi se poursuivre de mani re transparente Le travail demand consiste concevoir et mettre en uvre cette application IIT Technologies utilis es Cette partie est constitu e des choix technologiques et explique comment les mettre en place III 1 Choix technologiques Comme indiq dans le sujet nous allons d velopper l application sous Android Nous avons aussi choisi de programmer en Java parce que la documentation est propos e pour la plupart dans ce langage Pour pouvoir utiliser Android il nous sera n cessaire d installer le SDK d Android Nous avons choisi l environnement de d veloppement Eclipse parce qu il dis pose d un plugin ADT Android Development Tools facilitant le d veloppemnet d application Android De plus pour un travail collaboratif nous avons choisi d installer SVN sous Eclipse Pour les communications r seaux nous utilisons le protocole UDP parce que notre application n a pas besoin de v rifier la communication de bout en bout De plus le protocole UDP est plus l
16. objecifs fix s dans le cahier des charges ont t atteints Par ailleurs l un des probl mes majeurs que nous avons rencontr s a t la gestion du wifi ad hoc qui n est pas pris en compte par l interface utilisateur de la version d Android install e sur nos tablettes Cependant une autre difficult mais surmont e a t de concevoir un algorithme de synchronisation qui permet d apporter une connexion transparente au jeu D autre part ce projet nous a permis de d couvrir le d veloppement d applica tions Android et d appr hender les contraintes qui peuvent se poser par rapport au d veloppement courant De plus gr ce au projet nous avons d couvert le concept de DTN qui a rendu possible la mise en oeuvre d une application r seau tol rant au d lai 24 R f rences 1 Android developer http developer android com Lien consult le 24 03 2011 2 Article contenant le binaire du wpa_supplicant modifi http www nk14 fr 2010 12 07 controler un ar drone sous android Lien consult le 24 03 2011 3 Get android source http source android com source download html Lien consult le 24 03 2011 4 Site de l application barnacle wifi tether d velopper par szym ttp szym net barnacle Lien consult le 24 03 2011 5 Damine Guignard Julien Chable and Emmanuel Robles Programmation An droid de la conception au d ploiement avec le SDK Google Android 2 Eyrolles 2e edition 2010 25
17. oppeurs d Android n ont pas impl ment la possibilit de cr er ou de se connecter un r seau Wifi ad hoc Nous avons fait des recherches pour combler ce manque Le programme wpa_supplicant est responsable de la gestion du Wifi Nous avons trouv une version modifi e de ce programme qui permet de voir et de se connecter un r seau Wifi ad hoc Nous n avons malheureusement pas le code source Apr s avoir obtenu les droits n cessaire gr ce l application Universal Androot et Root Explorer pour Android nous avons pu remplacer le binaire wpa_supplicant Le probl me est que l inter face utilisateur d Android ne permet pas de cr er un r seau Wifi Nous utilisons donc un PC portable pour cr er un r seau Wifi ad hoc afin de pouvoir connecter les tablettes Une autre piste permettrait de ne plus utiliser un PC portable pour initier la connexion Wifi Une application open source se nommant Barnacle Wifi Tether permet de cr er un r seau Wifi ad hoc Le probl me est que toutes les applica tions Wifi Tether fonctionnent uniquement sur Android 2 2 et sup rieur Nos 14 tablettes sont la version 2 1 Nous avons pu r cup rer les sources d Android et les compiler mais nous ne savons pas comment l installer sur la tablette V 5 Architecture Nos classes Java sont regroup es en deux paquetages game et network Le pre mier contient toutes les classes relatives l impl mentation du jeu et le deuxi me celles impl
18. que circuit poss de son ensemble d obstacles classe Obstacle et son joueur interface Player Un circuit est un rectangle o les obstacles et le joueur ont une position L origine du rep re est en bas gauche du circuit et le sens de la course est de bas en haut Le circuit est une route droite mais circulaire puisqu arriv e au bout la voiture repart au d but et un tour a t effectu Le nombre de tours d une course est d fini dans la classe Config et si sa valeur est z ro il n y a pas de limite la course est infinie Lorsque la voiture a fini ses tours l exception EndOfGameException est lev e pour arr ter le jeu si les deux circuits sont termin s La m thode onStep d un circuit est appel e par la m thode du m me nom de Gamelmpl Elle appelle son tour onStep du joueur pour qu il avance d un pas Le pas effectu sur l axe des y est la vitesse en y de la voiture et elle est constante d finit dans la classe Config Ensuite le circuit v rifie les collisions entre la voiture et les obstacles Elle v rifie galement si la voiture d passe des obstacles sans les toucher et calcule le score Le score correspond la moyenne de l habilit du joueur sur des intervalles de temps bien d termin L habilit tant le rapport entre le nombre d obstacles vit s et le nombre total d obstacles d pass s vit s et heurt s V 2 L interface graphique L interface graphique est s par e en deux parti
19. re du joueur mais aussi les obstacles du circuit Le principe est d affecter les donn es distantes au circuit adverse local de fa on plus ou moins transparente Nous avons impl ment trois niveaux de synchronisation de la plus basique la plus transparente aux yeux de l utilisateur La synchronisation instantan e affecte les donn es du joueur distant ins tantan ment au joueur adverse lors de sa connexion Le changement est visible puisque la position du joueur son score et les obstacles sautent imm diatement pour correspondre au joueur distant La synchronisation instantan e cach e repose sur le m me principe mais un brouillard appara t pour masquer la synchronisation instantan e Le joueur virtuel reste pr sent jusqu ce que le brouillard devienne opaque et ce moment tout les changements sont effectu s L apparition de brouillard se fait galement de fa on al atoire pour ne pas savoir qu il y a synchronisation La synchronisation transparente doit avoir le comportement d crit dans la partie Description du travail r aliser D s la connexion le joueur distant prend la place du virtuel mais en mode de synchronisation C est dire qu il part de la m me position que le virtuel et effec tue un mouvement vers la position re ue via le r seau Ce mouvement ne concerne 13 que l axe des x Pour l axe des y lisez le paragraphe plus bas concernant les obs tacles Une fois les deux positions x gales le
20. roduire Le but de ce projet consiste donc mettre en place un jeu de course de voiture sur la plateforme Android avec un r seau tol rant au d lai DTN L objectif est de donner l impression l utilisateur qu il joue en temps r el avec son adversaire alors que les donn es sont transmises sur un DTN Le travail effectu dans ce document consiste dans un premier temps dresser la description du sujet et justifier nos choix techniques Dans un second temps nous d crirons le travail qui a t r alis du point de vue technique et les r sultats qui ont t obtenus Pour une pr sentation de l application et de ses fonctionnalit s un manuel d utilisation s av re n cessaire IT Rappel du sujet Les r seaux DTN sont des r seaux dans lesquels les messages que l on cherche changer le sont avec des d lais parfois longs et peuvent m me tre perdus Dans ce contexte on souhaite r aliser une application de course de voitures multi utilisateurs avec les caract ristiques suivantes Le circuit comporte des obstacles qu il faut viter En cas de choc avec un obstacle la voiture concern e est temporairement arr t e ou ralentie Chaque utilisateur dispose d une tablette Android lui permettant de visua liser la course et de contr ler sa voiture par inclinaison de la tablette Des messages sont chang s entre les tablettes pour permettre de conna tre la position de la voiture adverse La co
21. t SensorEvent startMove targetX float void move boolean move newTargetX float boolean isMoving boolean MOVE DELAY long DEFAULT SPEED float CIRCUIT LENGTH float instence Factory CIRCUIT SIZE float createGame a Activity CIRCUIT NBLAPS int createLevel left Circuit right Circuit A NB_OBSTACLES int createCircuit p Player VirtualPLayer ubx1 poject network x float RemotePlayer A float byteArrayToFloat bytes byte float M floatToByteArray f float byte score int copyData p Player yord byteArrayToInt bytes byte int Data p Player startXSynch void intToByteArray 1 int byte Data bytes byte setPositonip PolntF void toByte byte SynchData NetworkManager pseudo String init wm WifiManager void coordinates Set lt Coordinate gt y _ instence NetworkManager SynchData c Circuit start void SynchData bytes byte interrupt void toBytes byte onStep void FIGURE 4 Diagramme de classes 16 VI R sultats obtenus Le jeu est fonctionnel et sans bugs connus L interface graphique est conforme aux besoins Le contr le de la voiture via l inclinaison de la tablette est op ration nelle Le d placement du joueur virtuel est basique mais fluide Ses mouvements sont al atoires donc elle n anticipe pas d esquive d obstacle L aspect DTN c est dire les connexions et d connexions fonctionne correctement
22. ture elle m me permettant d afficher le pseudonyme de l adversaire Ces boutons ont t impl ment s l aide de la m thode onTouchEvent MotionEvent event h ritant de la classe View et qui d tecte le toucher de l cran sur une zone bien d limit e Le controle du joueur local est g r par le gyroscorpe En effet API d An droid propose une classe SensorManager qui permet de d tecter les changements d orientation subis par la tablette Pour cela nous avons utilis la classe abstraite getSystemService Elle permet l interaction entre le mat riel et le service Ici le service associ la classe abstraite est de type SENSOR_SERVICE habilit d tec ter les changements de direction Pour conna tre les changements de direction il faut associer un listener au sensor en impl mentant l interface SensorEventListener Nous avons utilis l angle en y de la m thode onSensorChanged de cette interface afin de r cup rer les variations de direction 10 V 3 Le r seau DTN La partie r seau du jeu est impl ment e dans le paquetage ubxl project network La classe NetworkManager est la classe principale qui s occupe d tablir et de g rer la connexion Elle tend la classe Runnable qui permet de lancer un thread pour la r ception des paquets Les m thodes getLocallpAddress et getBroadcas tAddress permettent de renvoyer respectivement l adresse IP de la machine et l adresse de broadcast du r seau Le calcul
23. uvent tre envisag es afin d am liorer le jeu e On peut ajouter la possibilit de faire une pause pendant une course e Il est possible d am liorer la fa on de quitter la course Le score et le temps de jeu pourrait tre affich s et sauvegard s e La vitesse de la voiture pourrait d pendre du score ou de l inclinaison de la tablette en avant e Un syst me de combos pourrait faire varier l importance d une esquive sur le score Par exemple plus on vite d obstacle la suite plus le score augmente vite e On pourrait aussi ajouter plusieurs types d obstacles et des bonus 18 VIIl Manuel utilisateur Course DTN est un jeu deux joueurs sous tablette Android repr sent par une ic ne Course DTN dans le dossier application D Applications LE Art 3 E Alarm Clock Browser Calculator Calendar Call log Camcorder Contacts O MI CourseDTN Documents To il Facebook File Manager Gallery Google Mail Maps mp a d ES Y Market Messaging Root Explorer RSS Reader Settings o D s Sound Recorder Superuser Twidroyd Universal User Guide i Weather Permissions Androot FIGURE 5 Icone de l application Une fois que l application est lanc e le menu du jeu s affiche D CourseDTN FIGURE 6 Menu du jeu Vous pouvez entrer votre pseudonyme dans le champ pr c d du label Entrez votre pseudo pour vous identifier par un nom 19 D CourseDTN FIGURE 7 Entr e

Download Pdf Manuals

image

Related Search

Related Contents

Copyright © All rights reserved.
Failed to retrieve file