Cours-Gratuit
  • Accueil
  • Blog
  • Cours informatique
home icon Cours gratuits » Cours informatique » Cours programmation » Cours JAVA » Applications JAVA

Projet de java avec interface graphique

Projet de java avec interface graphique
Participez au vote ☆☆☆☆☆★★★★★
Page suivante pour Télécharger

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);

   }

}

Decouvrir ces documents

  • Mini projet java avec interface graphique et base de données

    Mini projet java avec interface graphique et base de données

  • Code source en Java sur la gestion étudiant

    Code source en Java sur la gestion étudiant

  • Mini projet de programmation en langage C

    Mini projet de programmation en langage C

  • Cours de programmation python et interface graphique

    Cours de programmation python et interface graphique

  • Interface Java : interagir avec utilisateur

    Interface Java : interagir avec utilisateur

  • Mini projet calculatrice avec JAVA

    Mini projet calculatrice avec JAVA

  • Projet de PFE en informatique avec JAVA

    Projet de PFE en informatique avec JAVA

  • Projet en Java avec swing sur la gestion de stock

    Projet en Java avec swing sur la gestion de stock

Articles connexes

  • Tutoriel Excel : comment faire un graphique radar
  • Exercice Excel représentation graphique des ventes
  • Tutoriel Excel : créer un graphique circulaire avec des pourcentages
  • Comment élaborer un projet d'établissement scolaire?
  • Comment établir une étude de faisabilité d'un projet informatique ?
  • Comment rédiger une lettre de motivation pour un poste de chef de projet digital?
  • Tutoriel Excel : comment créer un graphique jauge
  • Tutoriel Excel : graphique simple, dynamique, camembert et courbe
  • Contactez-nous
  • A propos de nous
  • On recrute
  • Rechercher dans le site
  • Politique de confidentialité
  • Droit d'auteur/Copyright
  • Conditions générales d'utilisation
  • Plan du site
  • Accueil
  • Blog
  • Finance et compta.
  • Formations Pro.
  • Logiciels & Apps
  • Organisation
  • Cours informatique
  • Aide à la rédaction
  • Etudes et Metiers
  • Science et Tech
  • Titans de la Tech
id 11354 02