Projet de java avec interface graphique à télécharger


Télécharger Projet de java avec interface graphique à télécharger

★★★★★★★★★★3.5 étoiles sur 5 basé sur 1 votes.
Votez ce document:

Télécharger aussi :


Projet de java avec interface graphique à télécharger

Comment le lancer?

Une fois décompressé, il faut le compiler de préférence 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 développement du mini-projet 2 en 1, est que l'interface est totalement indépendante du jeu lui-même, et que le lien entre les 2 se fait grâce au passage de paramètres la surcharge de constructeur et les liens Observer/Observable...

Pourquoi sous Windows? Parce qu'on a eu des pbs de focus notamment, résolus sous Windows mais toujours effectifs sur Sun.(Alors qu'il ne devrait pas y avoir de problème de portabilité)

Une fois le jeu complet lance:

Alors apparait notre menu principal de l'interface (source Menu.java), qui possède 4 fonctionnalités

*1 afficher la table des records

*2 afficher le menu de jeu simple

*3 afficher le menu des options

*4 quitter le jeu

Vous pourrez télécharger le fichier au format zip il contient le code sources les classes, les modules, les images et le support d’utilisation sous format PDF.

Aperçu du codage de certaines classes de l’application :

Classe « Fantome » :

import java.awt.event.*;

import java.awt.*;

import java.awt.image.*;

import java.lang.*;

public class Fantome extends SpritePourPacman {

   // herite de Sprite

//     Toolkit tk;

//     Image banque[]; // banque de sprite

//     Image image; // image courante

//     int longSprite,largSprite; // devrais depaendre de chaque image ....

//     int XP,YP;

  

//     int seqAnim[];

//     int tempsEntreImage,TEI;

//     int step=0; // ou on en est de l'animation

  

//     Thread t;

   //herite de SpritePourPacman

//     int XC,YC;

//     int direction; // 0=immobile 1=dte -1=gauche 2=haut -2=bas

//     int directionD ; //direction Demandee

  

//     int vitesse; // de 1 a 10

//     int v; // temporaire

  

//     Tablo tab;

  

//     boolean bloque=false;

   // etat 0 normal 1 peur 2 Oeil

   String couleur;

   Pacman pac;

  

   Image imHaut;

   Image imBas;

   int seqMove[]={0,5 ,1,5 ,-1,-1};

   public Fantome(int xc,int yc,String couleur,int vit,Tablo tab,Pacman p) {

            super(xc,yc,0,0,40,40,vit,tab);

           

            // remplacer \\ par separator (pour iounix)

            // separator=\\ pour win   separator=/ pour unix

            String listeImage[]={"images\\ghost_"+couleur+"_lower_0.gif",//0

                                        "images\\ghost_"+couleur+"_lower_1.gif",//1

                                        "images\\ghost_"+couleur+"_east.gif",//2

                                        "images\\ghost_"+couleur+"_west.gif",//3

                                        "images\\ghost_"+couleur+"_north.gif",//4

                                        "images\\ghost_"+couleur+"_south.gif",//5

                                        "images\\ghost_eyes_east.gif",//6

                                        "images\\ghost_eyes_west.gif",//7

                                        "images\\ghost_eyes_north.gif",//8

                                        "images\\ghost_eyes_south.gif",//9

                                        "images\\ghost_scared.gif"};//10

System.out.println("Loading Fantome dataz ....");

            banque=loadImage(listeImage,tab.c);

seqAnim=seqMove;

           

            //3 vitesses pour fantome (correspondant a 3 etats)

            //normal, peur, yeux (variable de 1 a 12)

            int vitessedebase = 6;

            vitesse0 = vitessedebase;

            vitesse1 = vitessedebase - 4;

            vitesse2 = vitessedebase + 6;

etat(0); // etat normal

pac=p;

            this.couleur=couleur;

   }

public Fantome(int xc,int yc,String couleur,int vit,Tablo tab,Pacman p,int fantvitesse) {

     //un peu de surcharge de constructeur

     super(xc,yc,0,0,40,40,vit,tab);

     // remplacer \\ par separator (pour iounix)

     String listeImage[]={"images\\ghost_"+couleur+"_lower_0.gif",//0

                                      "images\\ghost_"+couleur+"_lower_1.gif",//1                      

                                      "images\\ghost_"+couleur+"_east.gif",//2

                                      "images\\ghost_"+couleur+"_west.gif",//3

                                      "images\\ghost_"+couleur+"_north.gif",//4

                                      "images\\ghost_"+couleur+"_south.gif",//5              

                                      "images\\ghost_eyes_east.gif",//6

                                      "images\\ghost_eyes_west.gif",//7

                                      "images\\ghost_eyes_north.gif",//8

                                      "images\\ghost_eyes_south.gif",//9               

                                      "images\\ghost_scared.gif"};//10

System.out.println("Loading Fantome dataz ....");

     banque=loadImage(listeImage,tab.c);

     seqAnim=seqMove;

     //3 vitesses pour fantome (correspondant a 3 etats)

     //normal, peur, yeux (variable de 1 a 12)

     //     int vitessedebase = 6;

     int vitessedebase = fantvitesse;

     vitesse0 = vitessedebase;

     vitesse1 = vitessedebase - 4;

     vitesse2 = vitessedebase + 6;

     etat(0); // etat normal

     pac=p;

     this.couleur=couleur;

}  

   private int abs(int a){ // pfffff j'la trouve pas ca me gave

            if (a<0) return -a;

            else     return a;

   } // pop pop c fait

// redefinie pour le Fantome pour chasser le Pacmass

   public void surUneCase() {

            // changement de dir

            if (etat == 2) { // etat = oeil >> on retourne a la base

               int diffX,diffY;

               diffX=XP-tab.XBase;

               diffY=YP-tab.YBase;

              

              

               if (abs(diffX) > abs(diffY))

                        if (diffX > 0)

                           directionD=-1; // on va vers lui

                        else         

                           directionD=1;

               else

                        if (diffY > 0)

                           directionD=2;

                        else

                           directionD=-2;

              

               if (direction == directionD) // on va ds la direction demandee

                        if (onPeutAllerVers(direction))

                           allerVers(direction);

                        else { // on va qd meme pas se bloquer ds un mur

                           pafLeMur(diffX,diffY);

                        }

               else // on voudrais change de direction

                        if (onPeutAllerVers(directionD)) { // on peut changer

                           allerVers(directionD);

                           direction=directionD;

                        }

                        else       // on ne peut pas changer

                           if (onPeutAllerVers(direction))

                                   allerVers(direction);

                           else { // on va pas se bloquer ds un mur II

                                   pafLeMur(diffX,diffY);

                           }

            }

           

            else { // on va pas a la base

               int diffX,diffY;

               diffX=XP-pac.XP;

               diffY=YP-pac.YP;

              

               if (abs(diffX) > abs(diffY))

                        if (diffX > 0)

                           if (etat==0) // si on veut manger le pacman

                                   directionD=-1; // on va vers lui

                           else               // sinon

                                   directionD=1; // on s'en eloigne

                        else         



                           if (etat==0) directionD=1;

                           else               directionD=-1;

               else

                        if (diffY > 0)

                           if (etat==0)   directionD=2;

                           else                 directionD=-2;

                        else

                           if (etat==0)   directionD=-2;

                           else                 directionD=2;

              

              

               if (direction == directionD) // on va ds la direction demandee

                        if (onPeutAllerVers(direction))

                           allerVers(direction);

                        else { // on va qd meme pas se bloquer ds un mur

                           pafLeMur(diffX,diffY);

                        }

               else // on voudrais change de direction

                        if (onPeutAllerVers(directionD)) { // on peut changer

                           allerVers(directionD);

                        direction=directionD;

                        }

                        else       // on ne peut pas changer

                           if (onPeutAllerVers(direction))

                                   allerVers(direction);

                           else { // on va pas se bloquer ds un mur II

                                   pafLeMur(diffX,diffY);

                           }

            }

   }

  

   public void pafLeMur(int diffX,int diffY){

            int directionC; // direction de correction

            if (etat == 2) { // oeil

               switch (direction) {

                        //             case 0: System.out.println("bouh") ;break;

               case 1: // on allais vers la dte ...

                        if (diffY>0) {

                           // pour bien corriger faudrais aller vers le haut

                           directionC=2;

                           // si on veut manger il faudrais aller vers le haut (2)

                           // mais si on veut fuir il faudrais aller vers le bas (-2)

                           if (onPeutAllerVers(directionC)) //ok

                                   direction=directionC ;

                           else

                                   direction=-directionC ; // tant pi ... demi tour

                        }

                        else {

                           directionC=-2;

                           if (onPeutAllerVers(directionC)) //ok

                                   direction=directionC ;

                           else

                                   direction=-directionC ; // tant pi ... demi tour

                        }

                        break;

               case -1:

                        if (diffY>0) {

                           directionC=2 ;

                           if (onPeutAllerVers(directionC)) //ok

                                   direction=directionC ;

                           else

                                   direction=-directionC ; // tant pi ... demi tour

                        }else{

                           directionC=-2 ;

                           if (onPeutAllerVers(directionC)) //ok

                                   direction=directionC ;

                           else

                                   direction=-directionC ; // tant pi ... demi tour

                        }

                        break;

               case 2:

                        if (diffX>0) {

                           directionC=-1 ;

                           if (onPeutAllerVers(directionC)) //ok

                                   direction=directionC ;

                           else

                                   direction=-directionC ; // tant pi ... demi tour

                        } else {

                           directionC=1 ;

                           if (onPeutAllerVers(directionC)) //ok

                                   direction=directionC ;

                           else

                                   direction=-directionC ; // tant pi ... demi tour

                          

                        }

                        break;

               case -2:

                        if (diffX>0) {

                           directionC=-1 ;

                           if (onPeutAllerVers(directionC)) //ok

                                   direction=directionC ;

                           else

                                   direction=-directionC ; // tant pi ... demi tour

                        } else {

                           directionC=1 ;

                           if (onPeutAllerVers(directionC)) //ok

                                   direction=directionC ;

                           else

                                   direction=-directionC ; // tant pi ... demi tour

                        }

               }

            }

            else {

           

switch (direction) {

               case 0: System.out.println("bouh") ;break;

               case 1: // on allais vers la dte ...

                        if (diffY>0) {

                           // pour bien corriger faudrais aller vers le haut

                           if (etat==0) directionC=2 ; else directionC=-2;

                           // si on veut manger il faudrais aller vers le haut (2)

                           // mais si on veut fuir il faudrais aller vers le bas (-2)

                           if (onPeutAllerVers(directionC)) //ok

                                   direction=directionC ;

                           else

                                   direction=-directionC ; // tant pi ... demi tour

                        }



                        else {

                           if (etat==0) directionC=-2 ; else directionC=2;

                           if (onPeutAllerVers(directionC)) //ok

                                   direction=directionC ;

                           else

                                   direction=-directionC ; // tant pi ... demi tour

                        }

                        break;

               case -1:

                        if (diffY>0) {

                           if (etat==0) directionC=2 ; else directionC=-2;

                           if (onPeutAllerVers(directionC)) //ok

                                   direction=directionC ;

                           else

                                   direction=-directionC ; // tant pi ... demi tour

                        }else{

                           if (etat==0) directionC=-2 ; else directionC=2;

                           if (onPeutAllerVers(directionC)) //ok

                                   direction=directionC ;

                           else

                                   direction=-directionC ; // tant pi ... demi tour

                        }

                        break;

               case 2:

                        if (diffX>0) {

                           if (etat==0) directionC=-1 ; else directionC=1;

                           if (onPeutAllerVers(directionC)) //ok

                                   direction=directionC ;

                           else

                                   direction=-directionC ; // tant pi ... demi tour

                        } else {

                           if (etat==0) directionC=1 ; else directionC=-1;

                           if (onPeutAllerVers(directionC)) //ok

                                   direction=directionC ;

                           else

                                   direction=-directionC ; // tant pi ... demi tour

                        }

                        break;

               case -2:

                        if (diffX>0) {

                           if (etat==0) directionC=-1 ; else directionC=1;

                           if (onPeutAllerVers(directionC)) //ok

                                   direction=directionC ;

                           else

                                   direction=-directionC ; // tant pi ... demi tour

                        } else {

                           if (etat==0) directionC=1 ; else directionC=-1;

                           if (onPeutAllerVers(directionC)) //ok

                                   direction=directionC ;

                           else

                                   direction=-directionC ; // tant pi ... demi tour

                        }

               }

            }

   }

public boolean anim(int seq[]){

            TEI++;

            if (step == seq.length) // on a finit

               return true; // on a finit la seq

            else

             if (TEI >= tempsEntreImage) {

                        if (seq[step] == -1) // on boucle

                           step=0;

                      imBas=banque[seq[step++]];

                      tempsEntreImage=seq[step++];

                        TEI=0;

               }

           

            return false; // on a pas finit la seq

   }

 public void allerVers(int d) {

            v++;

           switch (d) {

               //      case 0: if (! bloque) seqAnim=seqDte ; break;

            case 1: // on va vers la dte

               if (v+vitesse >= 10) {

                        XP=XP+1; if (XP%20 == 0) XC++ ; v=0;

               }

               switch (etat){

               case 0: imHaut=banque[2]; break; // normal

               case 1: imHaut=banque[10] ; break; // peur

               case 2: imHaut=banque[6] ; break; // oeil

               }

               break;

            case -1: // on va vers la gauche

               if (v+vitesse >= 10) {

                        XP=XP-1; if (XP%20 == 0) XC-- ; v=0;

               }

               switch (etat){

               case 0: imHaut=banque[3]; break; // normal

               case 1: imHaut=banque[10] ; break; // peur

               case 2: imHaut=banque[7] ; break; // oeil

               }

               break;

            case 2: // on va vers le haut

               if (v+vitesse >= 10) {

                        YP=YP-1; if (YP%20 == 0) YC-- ; v=0;

               }

               switch (etat){

               case 0: imHaut=banque[4]; break; // normal

               case 1: imHaut=banque[10] ; break; // peur

               case 2: imHaut=banque[8] ; break; // oeil

               }

               break;

            case -2: // on va vers le bas

               if (v+vitesse >= 10) {

                        YP=YP+1; if (YP%20 == 0) YC++ ; v=0;

               }

               switch (etat){

               case 0: imHaut=banque[5]; break; // normal

               case 1: imHaut=banque[10] ; break; // peur

               case 2: imHaut=banque[9] ; break; // oeil

               }

            }         

   }

   public void dessineToi(Graphics g,ImageObserver io){

            anim(seqAnim);

            //          effaceToi(g);

            if (etat == 0) { // normal

               g.drawImage(imHaut,XP-20,YP-20,io);

               g.drawImage(imBas,XP-20,YP-5,io);

            }

            if ((etat == 1) || (etat == 2)) {

               g.drawImage(imHaut,XP-20,YP-20,io);

            }

           

   }  

public void jeSuisMange() {

            etat(2);

   }

   public void peur(){

            etat(1);

   }     

   public void reinit(int x,int y){

            placeToiSurLaCase(x,y);

            bloque=false;

            etat(0);

   }

}



45