(bbongiov@clio.unice.fr) --- (czammout@clio.unice.fr)
Voici le projet en format tar.gz:
ceci est le plan directeur du mini-projet
Comment le lancer?
Une fois decompresse, il faut le compiler de preference sous Windows : javac *.java ; puis lancer java Menu pour avoir le programme Interface/Java;
Ou bien java Pacseul pour n'avoir que le jeu Pacman sans l'interface. Car un des avantages du developpement du mini-projet 2 en 1, est que l'interface est totalement independante du jeu lui-meme, et que le lien entre les 2 se fait grace au passage de parametres la surcharge de constructeur et les liens Observer/Observable...
Pourquoi sous Windows? Parce qu'on a eu des pbs de focus notamment, resolus sous Windows mais toujours effectifs sur Sun.(Alors qu'il ne devrait pas y avoir de probleme de portabilite)
Une fois le jeu complet lance:
Alors apparait notre menu principal de l'interface (source Menu.java), qui possede 4 fonctionnalites bien precises:
*1 afficher la table des records
*2 afficher le menu de jeu simple
*3 afficher le menu des options
*4 quitter le jeu
Il possede comme fonctionnalite temporaire de mettre a jour une table de score(non implementee).
Et de remettre a zero cette table, si le bouton resume est appuye.
Il possede comme fonctionnalite de modifier independemment la vitesse du pacman et la vitesse des fantomes grace a une scroll-bar.
Nous avions aussi prevu la possibilite de fixer une bande sonnore ou pas dans ce menu(non implemente).
Il possede comme fonctionnalite un retour au MenuInit principal si l'on a oublie de modifier les options par ex.Nous avions aussi fixer des textes a defilement pour selectionner le nombre de parties ainsi que le tableau(non implemente). Il est a noter que nous savons le faire mais que nous n'avons pas finaliser le tout. Si l'on saisie le nom du joueur suivi d'ENTER on peut cliquer sur GO pour lancer l'interface de jeu. Dans le cas contraire, un nom par defaut est pris en compte (null)
Il possede diverses fonctionnalites.
Start Game--> lance un nouveau jeu au dessous de l'interface de jeu qui est modale afin de ne pas "poper" des fenetres dans tous les sens... Une fois le jeu lance, pacman se joue avec le bloc de fleches directionelles. Le but est de manger toutes les pacgommes en moins de 3 vies. Remarques: une fois le jeu lance le bouton Start Game se grise et devient inactif (pour ne pas lancer 40 pacmans).
De meme, pendant le jeu on peut cliquer sur Pause /ON avec la souris pour mettre le jeu sur pause(il devient alors inactif et seul Pause /OFF et activable,et inversement). Vous remarquerez que le score evolue de cette facon:1 pacgomme=10 pts 1 grossegomme=100 pts, un fantome mange=500 pts. Toutes ces evolutions dans l'interface sont possibles grace au mecanisme de Observer/Observable.
InterfaceInteraction est l'Observer,alors que Tablo et Pacman sont Observable.
Il faut aussi noter que l'on peut a tout moment quitter totalement le jeu (bouton QUIT), ou bien revenir au menu principal (bouton RETOUR MENU). Chaque fois que l'on quitte, cela est fait proprement grace a la methode finalize reimplementee qui s'occupe de la gestion des threads.
Cela permet de revenir au menu pour recommencer une autre partie, ou bien de quitter le jeu totalement.
Nous sommes conscients que l'on peut largement ameliore le jeu, mais nous avons perdu beaucoup de temps dans le probleme de perte de focus avec Pacman.
Nous nous sommes beaucoups attache a avoir un model objet propre (ex: la classe Pacman extends SpritePourPacman extends Sprite ...)