Home
Pokemon - Marceau Lecomte
Contents
1. Permet de prendre la fuite quand c est possible eoo Pokemons Objets Fuite Utiliser l attaque Griffe sur le pokemon Chenipan Max 109PV x3 Utiliser l attaque Tonnerre sur le pokemon Chenipan Max 15PV x20 8 00 Attaques MATE Objets Fuite Changer le pokemon Kangourex avec le pokemon Pikachu Changer le pokemon Kangourex avec le pokemon Elektor Changer le pokemon Kangourex avec le pokemon Dracaufeu Ronflex 18 59 Nombre de pokemons 1 Kangourex Level 23 0 50 Sacha attaque Coup de corne sur Ronflex Pokemon sauvage attaque Repos sur Kangourex FIGURE 5 a Duel Menu Attaques b Menu Pokemons eeo Attaques Pokemons Fuite 800 Utiliser une Pokeball sur Mewtwo x2 Utiliser une Superball sur Mewtwo x1 Mewtwo Level 5 Nombre de pokemons 1 Dracaufeu Level 20 m 0 50 Sacha change Pikachu avec Dracaufeu Pokemon sauvage attaque Laser sur Dracaufeu Attaques Pokemons Objets ren Kangourex Level 23 0 50 Sacha utilise l objet Baie rouge sur le pokemon Kangourex Pokemon sauvage attaque Spores sur Kangourex FIGURE 6 a Menu Objets b Menu Fuite 3 Architecture L architecture du programme s articule autour d un Pattern MVC Dans celui ci le mod le et la vue suivent un State Pattern une classe s occupe de dispatcher les informations d pendant de la phase de jeu d
2. UNIVERSIT ECOLE LIBRE POLYTECHNIQUE DE BRUXELLES DE BRUXELLES Pokemon Projet BA2 Informatique 12 mai 2013 LECOMTE Marceau MOURAUX Antoine VAN EECKHAUTE Mathieu 1 Introduction Dans le cadre du projet du cours d informatique pour BA2 en polytech il a t demand aux tu diants de choisir un sujet parmi une liste propos e Nous avons choisi d impl menter un jeu Pokemon se rapprochant du vrai jeu Le but tait pour nous de cr er le jeu de mani re pouvoir ajouter du contenu facilement par la suite de nouvelles cartes des nouveaux pokemons de nouveaux types d objets etc Pour ce faire la programmation orient e objet est un outil indispensable 2 Mode d emploi 2 1 Param tres du jeu Le jeu Pokemon est caract ris par diff rents param tres de jeu e Le joueur son nom ses pok mons et ses items e Les pok mons sauvages e Les dresseurs leur nom leurs pok mons et leurs items e La carte de jeu disposition des maisons herbes hautes dresseurs arbres plantes etc Le jeu a t con u de telle fa on que le joueur puisse facilement modifier tous ces param tres de jeu Ainsi s il le d sire l utilisateur a la possibilit de cr er un jeu totalement personnalis Pour cela il doit modifier les fichiers textes suivants 2 1 1 Player Le format de stockage est nom Pokemon niveau vie Attaque d gats minimum d gats maxi mum AttaqueN Pok
3. Enfin elle met jour la liste des pok mons de chaque combattant rafraichit les actions possibles et termine le duel 3 3 La Vue La vue est responsable de l interface graphique du jeu Elle est compos e d une GameView qui impl mente l interface Observer du mod le C est donc un observer qui observe l interface IGames tate du mod le Elle est responsable de cr er et fermer la fen tre de l interface graphique g rer le changement d affichage entre la map conteneur et le duel g r par DuelView Il y a donc deux parties dans l affichage le duel et le d placement dans la carte qu il aurait t possible de cr er une interface TCase d finissant les cases ainsi qu une classe par type de case en fonction de l interaction avec le joueur Il a t d cid de ne pas adopter cette option car cela reviendrait g n rer un objet par case de jeu La cr ation de l objet case et les interactions en fonction de la position du joueur auraient t plus lourds en terme de gestion des ressources 3 3 1 L affichage du d placement une classe Conteneur un JPanel on ajoute l image de la carte de jeu et du personnage Le Conteneur affiche la partie visible de la carte en maintenant le personnage au centre La carte est donc plus grande que sa partie affich e dans le conteneur Il capte aussi les saisies clavier de l utilisateur et en avertit le contr leur Les image
4. ans laquelle le joueur se trouve Carte ou duel 3 1 Pattern MVC lt lt Java Interfaces ViewObserver view lt lt Java Class gt Controller State update l ction void controller amp updateichar void Java Interfaces T Editable miel goUpi void lt lt Java Classe 9 GameView amp goBottomi void amp goLefti void amp gohight void nextstateil ction void vEw lt lt Java Interface Observer m lt lt Java Interfaces En E Observable lt lt Java Class gt amp update int int int void OO ro matel ModelState amp update List lt l ction GameState void model amp update String void addObserver Observer void FIGURE 7 Pattern MVC Afin de comprendre pleinement l architecture MVC impl ment e ici il est n cessaire d expliquer le principe d Observable et d Observer 3 1 1 Observable et Observer Pour instaurer une communication qui va dans un sens unique entre un l ment et un ensemble d autres l ments et afin d viter au maximum le couplage on instaure des interfaces Observable et Observer On peut se repr senter ce concept comme un cours ex cathedra le professeur Obser vable parle aux l ves Observers sans que ceux ci ne puissent intervenir La communication va de l Observable aux Observers voir figure fr partie encadr e en rouge L Observable ne connait absolument rien des Observers qu
5. chaque fois si la position courante du joueur est contenue dans ces sets pour d finir des interactions entrer en combat ou bloquer le d placement Le lecteur int ress remarquera lt lt Java Class gt gt ModelState o obs List lt Observer gt o player Player E ModelState int int int int Map IPlayer List lt Pokemon gt List lt IPlayer gt addObserver Observer void nextstate lAction void newDuel Player boolean void goUp void goBottom void goLeft void goRight void lt lt Java Class gt gt PositionModel model lt lt Java Class gt gt Duel model o player Player o state int o dresseur Player a x int o pokemons1 List lt Pokemon gt o y int o pokemons2 List lt Pokemon gt o finished boolean o pokelibre boolean amp Duel lPlayer Player boolean nextState lAction String finish void OEE E isFinished boolean MapModel hasWon boolean modai getPokemonsPlayer ListzPokemon gt getPokemonsDresseur ListzPokemon gt getPossibleMovesPlayer List lt lAction gt FIGURE 8 Dispatching du ModelState n cessaire 3 2 2 Duel Cette classe g re les combats entre dresseurs et joueur ou entre pok mons sauvages et joueur Elle effectue un tour de jeu l aide de sa m thode nextState Cette m thode re oit une action l effectue et effectue l action de l adversaire
6. emonN ltemltypel caract ristique charges TtemNtypel Item1type2 caract ristique charges ItemNtype2 Voici un exemple Sacha Kangourex 23 46 Coup de corne 35 43 5 lPikachu 7 35 Griffe 100 109 3 Tonnerre 10 15 20 l Elektor nerre 10 15 15 Dracaufeu 20 70 Lance flamme 15 20 10 Morsure 5 20 15 Baie rouge 10 2 Baie noire 20 1 Pokeball 40 2 Superball 60 1 2 1 2 Pokemon Le format de stockage est Pokemon niveau vie Attaquel d gats minimum d gats maximum AttaqueN Miaous 5 12 Griffe 3 9 15 Leche 1 4 40 Mewtwo 30 43 Laser 10 15 10 2 1 3 Dresseurs Le format de stockage est nom Pokemonl niveau vie Attaque d gats minimum d gats maximum AttaqueN PokemonN lteml caract ristique charges ItemnN MichMich Miaous 5 12 Griffe 3 9 15 Leche 1 4 20 Mewtwo 12 25 Meteore 15 20 10 La ser 1 3 40 Baie rouge 10 2 Le roi des belges Pikachu 9 18 Griffe 3 9 15 Eclair 1 4 40 Baie noire 20 1 2 1 4 Map Le format de stockage est position x position y type d l ment Voici un exemple qui permet de placer un dresseur 7 une maison 1 et une plante 3 Il est possible de placer des plantes 5 et des arbres 6 2 1er 2 41 1 22 2 2 D placement Lorsqu il lance le jeu l utilisateur se trouve dans une carte Il peut alors s y d placer Le but du jeu est de battre tous les Pokemons pr sents dans l herbe ainsi que tou
7. haut Attaques Pokemons Objets Fuite Miaous 12 12 Level 5 Nombre de pokemons 1 Level 10 Sacha change Pikachu avec Elektor Pokemon sauvage attaque Griffe sur Elektor FIGURE 4 Duel Pour chaque pokemon l affichage comprend une image le repr sentant encadr rouge Figure 4 un encadr reprenant le nom du pokemon ses points de vie son niveau son exp rience pour le pokemon du joueur le nombre de pokemons restant l adversaire pour le pokemon adverse encadr noir Figure 4 une bo te de dialogue en bas de la fen tre avec une ligne de s paration Au dessus et sous la ligne de s paration on retrouve respectivement l action du pokemon du joueur et l action du pokemon adverse encadr vert Figure 4 2 3 2 Le menu Une fois le duel affich l utilisateur doit s lectionner une action effectuer Il s lectionne son action l aide d un menu situ en haut gauche de la fen tre de jeu Ce menu est compos d onglets comprenant chacun des items S lectionner un item effectue l action Les 4 onglets sont Attaques Figure Ela il comprend les attaques que le pokemon du joueur peut effectuer sur le pokemon adverse Pokemons Figure Elb comprend les items permettant au joueur de changer son pokemon courant Objets Figure 6 a permet d utiliser un objet parmi les items sur le pokemon du joueur Fuite Figure 6 b
8. i lui sont li s part les m thodes pr sent es dans l interface Observer qui sont des m thodes de mise jour Pour en revenir notre cours le professeur ne voit pas les l ves et peut par exemple tre film par une cam ra La seule chose qu il fait c est parler mettre jour les Observers peu importe qui coute Les Observers quant eux sont mis jour par l Observable et utilisent l information re ue leur convenance Ceci dit pour que les Observers puissent tre mis jour l Observable doit avoir une liste de tous les Observers qui l coutent 3 1 2 Mod le vue et contr leur Le concept de ce pattern est de pouvoir adapter diff rentes interfaces graphiques vues sans mo difier le contenu du jeu mod le A nsi le mod le peut potentiellement communiquer avec diff rentes vues Mod le Le mod le constitue le coeur du programme C est dans celui ci que tous les calculs sont effectu s Dans notre configuration le mod le impl mente l interface Observable Vue La vue quant elle est charg e de l affichage C est l interface graphique du programme Chaque vue dans notre cas il n y en a qu une impl mente l interface Observer Contr leur Enfin le contr leur est l pour faire le lien entre la vue et le mod le C est lui qui analyse les om interactions avec lutilisateur Par exemple si l utilisateur pousse sur la lettre z le con
9. odelState peut envoyer cette nouvelle position ses observeurs Dans ce cas GameView Ce dernier met alors jour son interface graphique et attend la prochaine instruction de l utilisateur l tape de v rification de la position dans MapModel si utilisateur doit rentrer en combat avec un pokemon sauvage ou un dresseur MapModel signale au ModelState de cr er un nouveau duel 3 4 2 Duel Dans un duel l utilisateur choisit une action dans une barre de menu L action est transmise au contr leur Celui ci appelle une m thode du ModelState qui appelle lui m me la m thode nextState de Duel NextState va g rer un tour de jeu du duel c est dire effectuer l action du joueur effectuer l action de l adversaire et mettre fin au duel si n cessaire Une fois le combat mis jour le ModelState va envoyer l tat du duel et la liste des actions pos sibles pour le joueur ses Observers GameView Ce dernier met son interface graphique jour et attend la prochaine instruction de l utilisateur 4 Am liorations possibles La voie la plus directe pour am liorer le jeu est simplement d ajouter du contenu ajouter des pokemons des dresseurs agrandir la carte Avec des modifications mineures on peut apporter d autres am liorations Ajouter des cartes Le Card Layout pr sent dans la vue permet de changer facilement de vue En ajoutant une surcharge de l update de la vue on peu
10. s de la carte de jeu enti re et du personnage sont respectivement g n r es par les classes MapView et Perso 3 3 2 L affichage du duel L affichage du duel est g r par la classe DuelView Elle est responsable de cr er et mettre jour le menu Classe Menu et le DuelPanel en fonction de l volution du duel Le menu du duel est g r par la classe Menu Elle met jour les items de chaque onglet du menu en fonction des actions possibles re ues et notifie le contr leur avec l action choisie par le joueur L affichage des pokemons de leurs caract ristiques et de la description des actions est pris en charge par la classe DuelPanel lt lt Java Class gt GameView VEN ea lt lt Javs Classes Conteneur lt lt Java Classez 9 DuelView VIEN lt lt Java Class gt lt lt Java Class gt E TN 9 Perso O MapView lt lt Java Classe lt lt Java Class gt view 9 DuelPanel MEN TEW FIGURE 9 Diagramme de classes Vue 3 4 Exemple de Cycle de jeu 3 4 1 D placement Pour se d placer l utilisateur enfonce une touche le conteneur coute le clavier et transmet la touche enfonc e au contr leur Celui ci traduit la touche re ue en une action et appelle une m thode de d placement du ModelState Celui ci appelle alors une m thode de changement de position de PositionModel qui v rifie avec le MapModel si le d placement est possible Une fois la position mise jour le M
11. s les dresseurs FIGURE 1 Carte dans laquelle le joueur peut se d placer 2 2 1 Herbes En se d pla ant dans l herbe le joueur a une chance sur dix de tomber sur un Pokemon et donc d entrer en combat contre celui ci voir le mode d emploi du duel plus bas Il y a un nombre limit de Pokemons pr sents dans l herbe et lorsque le joueur en a battu un il ne r apparaitra plus FIGURE 2 Herbe 2 2 2 Dresseurs Au d tour d une promenade le joueur peut tomber face un dresseur Celui ci poss de un ou plusieurs Pokemons et des objets il peut notamment soigner ses Pokemons Une fois battu un dresseur n importunera plus le joueur FIGURE 3 Dresseur 2 3 Duel Un duel se d clenche dans 2 cas quand le joueur se balade dans l herbe ou quand il se trouve sur la case sous un dresseur Lorsqu un duel se d clenche l affichage de la carte laisse place au duel Chaque situation donne lieu un type de duel diff rent quand le joueur est oppos un pok mon dans l herbe Le joueur en plus de combattre le pokemon peut alors le capturer ou mettre un terme au duel en prenant la fuite quand il est oppos un dresseur Le joueur n a alors d autre choix que de se battre il ne peut ni fuir ni capturer le pokemon adverse 2 3 1 Affichage Les deux pokemons oppos s sont repr sent s Le pokemon du joueur est en bas de la fen tre et le pokemon adverse en
12. t arriver passer en argument une Map Le fait de passer d une carte l autre serait alors g r par le MapModel Rentrer dans les maisons la d tection des tentatives pour rentrer dans une maison existe d j En reprenant le point d au dessus ajout de cartes il suffit alors d ajouter une carte qui correspond l int rieur d une maison Enfin d autres am liorations sont envisageables moyennant des modifications moins directes du code enregistrer la partie pour pouvoir la recharger plus tard ajouter un magasin pour acheter des objets etc 10
13. tr leur va pr venir le mod le qu il doit faire monter le personnage NB Dans la configuration choisie le contr leur et la vue ne peuvent exister s par ment D s lors il n est pas n cessaire de d finir une interface du type Observable pour la vue car elle ne poss de de toute fa on qu un Observer et que le contr leur n envoie en aucun cas d information la vue 3 2 Mod le Dans le mod le le State Pattern a t utilis Le State Pattern peut tre vu comme un centre de dispatching qui selon la phase du jeu duel ou d placement oriente les messages re us vers la partie du code qui en a besoin Il s agit de la classe ModelState qui poss de deux tats repr sentant respectivement la phase de d placement PositionModel et la phase de combat Duel 3 2 1 D placement Le d placement est g r par deux classes La classe PositionModel qui s occupe des mouvements du joueur dans la map La classe MapModel qui emp che le joueur de se d placer quand c est interdit sur une maison sur un arbre DEl elle va aussi dire au ModelState de cr er un duel lorsque c est 1 La position du joueur et des l ments de la carte est ici simplement une paire d entiers pos X pos Y convertie en un entier stock dans un set liste tri e d entiers Les positions interdites ou sp ciales herbe ou la position des dresseurs sont stock es dans des sets d entiers On v rifie
Download Pdf Manuals
Related Search
Related Contents
VARISTAR cabinet platform with water-cooled heat een gebruiksaanwijzing Il ` 416ŒII - Alain Zanchetta INSTALLATION & USER GUIDE THERMOSTATIC G-448HD V02 OK Motherboard- Installationshilfe Unidade de Gestão - LA - POPH A9900520 - Rear Suspension Unit - Ohins_JP.fm Copyright © All rights reserved.
Failed to retrieve file