:: Enseignements :: ESIPE :: E4INFO :: 2013-2014 :: Interface Graphique avec Android ::
![[LOGO]](http://igm.univ-mlv.fr/ens/resources/mlv.png) | Jeu de pirates |
DATE LIMITE:
Jeudi 29 mai 2014, 23h59
Le projet est à rendre sur la plateforme e-learning.
Le projet consiste à implanter un jeu de "combat" entre deux pirates sous la forme d'une interface graphique sous Android. Ce jeu se joue à deux.
Plan de jeu
Le jeu se présente sous la forme d'une pièce rectangulaire entourée de quatre murs. Des petits murs horizontaux et verticaux (appelés des plateaux) sont en apesanteur (immobiles) dans la pièce.
On peut y trouver deux pirates, chacun représenté par un cercle avec un bandeau (de pirate) d'une certaine couleur (une couleur différente par pirate). Chaque pirate se trouve posé sur un mur. La gravité est propre à chaque pirate. Elle est perpendiculaire au mur sur lequel il est posé.
Vous trouverez ci-dessous un exemple de plan de jeu.
Déplacement des pirates
Les pirates se déplacent sur l'axe du mur sur lequel ils sont posés. Ce déplacement est uniquement géré par l'intelligence artificielle du jeu. L'arrivée du pirate en bout de plateau entraine sa "chute": charge à vous de gérer la gravité dans ce cas-là.
Chaque joueur gère son propre pirate. Dès qu'il clique sur une certaine zone (cf. ci-dessous), son pirate sautera dans le sens inverse de sa gravité. Si le joueur clique à nouveau au moment où le pirate retouche le mur, son déplacement est accéléré pendant un certain laps de temps.
La jouabilité pourra être améliorée par une accélération verticale (nouveau rebond amplifié) plutôt qu'horizontale.
Lors du saut, si le pirate touche un mur, le pirate se pose sur celui-ci. Attention à bien gérer le changement de gravité si le mur change.
Par contre, en dehors des cas du saut et de la chute, le pirate reste posé sur son mur, son déplacement étant géré par l'intelligence artificielle.
Combat de pirates
A chaque fois que les deux pirates se percutent, celui qui a la vitesse la plus basse, perd une vie. A vous de gérer correctement les collisions! Le combat se termine lorsque l'un des deux pirates n'a plus de vie ou qu'un certain temps s'est écoulé (le pirate déclaré vainqueur est celui qui a le plus de vies).
Zones de clic
On associe à chaque joueur (i.e. chaque pirate), une zone de clic sur l'interface. Cette zone dépendra du niveau de difficulté du jeu. Il y a deux niveaux de difficulté:
-
Facile: l'interface est divisée en deux zones de clic statiques qui ne bougent pas tout au long du jeu.
-
Difficile: les zones dépendent des positions des pirates et se déplacent donc de manière dynamique.
Gestion des bonus
Des bonus peuvent se trouver sur le plan de jeu. Dès qu'un pirate se trouve en contact avec l'un d'eux, il en bénéficie. Voici quelques exemples de bonus: ajout d'une vie, accélération, etc.
Niveaux
Le jeu doit marcher par niveaux. Chaque niveau est associé à un plan de jeu qui pourra être construit manuellement au moyen d'un fichier ascii définissant ce plan. Le caractère 'x' représente une brique d'un mur, les caractères '1' et '2' désignent les pirates en position initiale. Les bonus pourront également être placés à l'aide d'autres caractères.
Par exemple, le fichier ascii ci-dessous permet de représenter (approximativement) l'exemple de jeu présenté plus haut.
xxxxxxxxxxxxxxxxxxxxxxxxxxxx
x x
x x x
x xxxxxx 2x x
x x x
x x
x xxxxxxxxx x
x 1 x
xxxxxxxxxxxxxxxxxxxxxxxxxxxx
Voici un autre exemple de plan de jeu:
xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
x x
x x2 x
x xxxxxxxxxxxx x
x 1 x x
x x x
x x x
x x
x x
xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Votre travail
Votre travail consistera à implanter ce jeu dans une interface graphique sous Android.
Aucune bibliothèque externe ne sera autorisée. Comme vous pouvez le constater, il vous est laissé un grand espace de liberté (collisions, déplacements lorsqu'un pirate n'est plus sous l'emprise d'un mur, etc.). A vous de faire en sorte de développer une intelligence artificielle qui rende le jeu jouable.
Indice pour commencer: penser à utiliser une SurfaceView!
Rendu
Ce projet doit être réalisé en binomes. Il devra être rendu
avant le 29 mai 2014, 23h00.
Il devra être déposé sur la plateforme elearning, dans le module Interfaces Graphiques.
Il contiendra
une archive .tgz, contenant le répertoire de votre projet sous eclipse, un README contenant les informations pour exécuter votre jeu et un rapport (en pdf).
Le rapport, de 12 pages minimun, aura une forte orientation technique (il ne s'agit pas d'un manuel utilisateur). Ce rapport devra présenter l'organisation de votre travail. Il mettra en avant les difficultés rencontrées, et la(les) méthode(s) utilisée(s) afin de les résoudre. N'oubliez pas d'exposer comment vous avez résolu le problème, mais aussi pourquoi.
Critères d'évaluation
- Respect des consignes
- Jouabilité
- Gestion des collisions
- Gestion de la gravité
- Extensions
- Qualité du code et des commentaires
- Qualité du rapport
- Capacité à chanter en duo He is a Pirate
- ...
© Université de Marne-la-Vallée