IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

2D Java Discussion :

Frame et terminal pas d'accord....


Sujet :

2D Java

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 41
    Points : 27
    Points
    27
    Par défaut Frame et terminal pas d'accord....
    Bonjour,
    je suis en train de faire le labyrinthe d'un pacman, or je suis tombé sur un problème assez étrange:
    lorsque j'affiche la matrice du labyrinthe dans le terminal, c'est dans le bon sens,or lorsque je fais dessiner cette mème matrice dans une frame, ce n'est pas ds le bon sens! Il faut que je fasse une rotation de 90° ds le sens inverse des aiguillles d'1 montre, puis que je la regarde à l'envers pour retrouver ce qui ya ds le terminal!

    Or, les méthodes que j'ai utilisées pour l'affichage terminal et pr la frame n'inversent pas les coordonées(enfin je crois)!

    Voici le code pr l'affichage frame:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    	public void start(String s) {
    		if (f!=null) return;
    		f = new JFrame(s);
    		f.setResizable(false);
    		f.getContentPane().add(this);
    		f.pack();
    		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		f.setVisible(true);
    		try {
    	    	Thread.sleep(3000);
    		} catch(Exception e) {}
    		for(int i=0;i<lab.length;i++){
    		    for(int j=0;j<lab[0].length;j++){
    	    		if(lab[i][j]==1){           //voila c ici 
    			    traceBloc(i,j);
     
    			}
    			if (lab[i][j]==0){          //et ici
    			    traceVide(i,j);
    			}
    			f.getContentPane().add(this);
     
    		    }
    		    f.getContentPane().add(this);
     
    		}
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    	public void traceBloc(int i,int j){
    			this.Images[i][j]= f.getToolkit().getImage("brick.gif");
    			this.Gr.drawImage(this.Images[i][j],25*i,25*j,this.f);
    			f.getContentPane().add(this);
    }
    le code est semblable pour traceBloc et tracePacman

    Et voici le code pr l'affichage terminal:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
        public static void getTab(int lab[][]) {
    	for (int i=0;i<lab.length;i++){
    	    for (int j=0;j<lab[0].length;j++)
    		System.out.print(lab[i][j]+" ");
           System.out.println();
    	}
        }
    Quelqu'un voit it le probleme?

  2. #2
    Gfx
    Gfx est déconnecté
    Expert éminent
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Points : 8 178
    Points
    8 178
    Par défaut
    Pourquoi fais-tu plein d'appels a f.getContentPane().add(this); ? Par defaut le content pane a un BorderLayout et quand tu fais add(composant) sur un tel layout, le composant va automatiquement au centre. Bref, a chaque appel tu retire le composant de la fenetre et tu le remets au meme endroit, c'est totalement inutile.

  3. #3
    Membre émérite
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Points : 2 410
    Points
    2 410
    Par défaut
    Sinon, par rapport à l'agencement, ton code a l'air correct.

    Es tu sûr que Images[][] est rempli dans le bon ordre ?

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 41
    Points : 27
    Points
    27
    Par défaut
    et bien je pense que oui, Images[][] se remplit de la meme maniere que la matrice est affichée dans le terminal, il y aurait pu y avoir un probleme de remplissage du type Images[][] recoit des murs à la place du vide, mais ce n'est pas le cas, c'est ca qui m'inquiète.

Discussions similaires

  1. ORA-00933 la commande SQL ne se termine pas correctement
    Par habasque dans le forum Sql*Plus
    Réponses: 1
    Dernier message: 09/12/2006, 14h41
  2. WM_QUIT ne termine pas mon application !
    Par syj dans le forum Visual C++
    Réponses: 7
    Dernier message: 10/11/2006, 11h21
  3. Terminate() qui ne terminate pas
    Par kurkaine dans le forum C++Builder
    Réponses: 5
    Dernier message: 19/06/2006, 21h05
  4. [AJAX] Ma fonction ne se termine pas...
    Par Davboc dans le forum Général JavaScript
    Réponses: 17
    Dernier message: 08/03/2006, 12h05
  5. [TTHREAD] ne termine pas sont exécution
    Par Bbenj dans le forum Langage
    Réponses: 4
    Dernier message: 02/08/2002, 16h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo