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

AWT/Swing Java Discussion :

problème de coordonnées


Sujet :

AWT/Swing Java

  1. #1
    Membre régulier
    Inscrit en
    Janvier 2006
    Messages
    716
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 716
    Points : 112
    Points
    112
    Par défaut problème de coordonnées
    Bonjour,
    je suis en train de faire un Pacman en java et je rencontre un énorme problème lors de la construction de mon labyrinthe.
    Une case de mon labyrinthe correspond à un Panel avec une image, je construit mon laby avec un fichier qui contient des 0(couloir) et des 1(mur) comme ceci :
    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
     
    public Labyrinthe(int[][] tab)
    {
    	longeur=tab.length;
    	hauteur=tab[0].length;
    	this.setLayout(new GridLayout(tab.length, tab[0].length));
    	this.cases = new Case[tab.length][tab[0].length];
    	for (int i = 0; i < tab.length; i++) 
    	{
    		for (int j = 0; j < tab[0].length; j++)
    		{
    			switch (tab[i][j]) {
    			case 0:
    				this.cases[i][j] = new Couloir(i, j);
    				break;
    			case 1:
    				this.cases[i][j] = new Mur(i, j);
    				break;
    			}
    			this.add(this.cases[i][j]);
    		}
    	}
    	placePacman();
    }
    Le labyrinthe se construit conformément au fichier de 0 et de 1
    Ensuite j'ai fait une fonction qui me dit si la case est un mur ou pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public static Case getObjetCase(int x, int y)
    {
    	return cases[x][y];
    }
    public static boolean estMur(int ligne, int colonne)
    {
    	return getObjetCase(ligne, colonne).getClass().getName().compareToIgnoreCase("pacman.decors.Mur") == 0;
    }
    Et c'est là qu'est tout le problème, car quand j'utilise cette fonction les coordonnées sont inversées et je ne comprend vraiment pas pourquoi...
    Je sais que pour résoudre mon problème je n'ai qu'a a inversé x et y mais cela n'est pas du tout logique!

  2. #2
    Membre expérimenté Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    Points : 1 639
    Points
    1 639
    Par défaut
    Fais voir le code complet de ta classe Mur !

    Ca serait pas dans ton constructeur le probleme ?

  3. #3
    Membre régulier
    Inscrit en
    Janvier 2006
    Messages
    716
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 716
    Points : 112
    Points
    112
    Par défaut
    Voici le code de ma classe Mur:
    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
     
    public class Mur extends Decor
    {
    	private Image mur = toolkit.getImage("images/decors/mur.gif");
    	public Mur(int x, int y)
    	{
    		super(x,y);
    	}
    	public void paint(Graphics g)
    	{
    		int l, h;
    	    l = getWidth();
    	    h = getHeight();
    	    g.drawImage(mur, 0, 0, l, h, this);
    	}
    }
    et celui de la classe case dont mur et couloir héritent :
    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
    29
    30
    31
    32
    33
    34
     
    package pacman;
    import java.awt.*;
     
    public abstract class Case extends Panel
    {
    	protected static Toolkit toolkit = Toolkit.getDefaultToolkit();
    	//Numéro de la ligne sur laquelle se trouve l'objet
    	protected static int x;
    	//Numéro de la colonne sur laquelle se trouve l'objet
    	protected static int y;
    	public Case(int x, int y)
    	{
    		this.x=x;
    		this.y=x;
    	}
    	public int getX() 
    	{
    		return x;
    	}
    	public void setX(int x) 
    	{
    		Case.x = x;
    	}
    	public int getY() 
    	{
    		return y;
    	}
    	public void setY(int y) 
    	{
    		Case.y = y;
    	}
    	public abstract void paint(Graphics g);
    }
    Merci de votre aide

  4. #4
    Membre expérimenté Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    Points : 1 639
    Points
    1 639
    Par défaut
    Ca serait pas un peu ca qui pose probleme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public Case(int x, int y)
    	{
    		this.x=x;
    		this.y=x;
    	}

  5. #5
    Membre régulier
    Inscrit en
    Janvier 2006
    Messages
    716
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 716
    Points : 112
    Points
    112
    Par défaut
    Ah oui merci beaucoup, j'avais pas fait gaffe...
    Mais cela ne résoud toujours pas le problème, je m'arrache les cheveux...


    Merci pour votre aide

  6. #6
    Membre expérimenté Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    Points : 1 639
    Points
    1 639
    Par défaut
    Et la classe Decor ?

  7. #7
    Membre régulier Avatar de ikeaboy
    Inscrit en
    Novembre 2004
    Messages
    114
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Novembre 2004
    Messages : 114
    Points : 109
    Points
    109
    Par défaut
    Tu dis que Mur et couloir heritent de Case pourtant tu marque C'est juste une remarque... je ne sais pas du tout si c'est ca...

  8. #8
    Membre éclairé
    Avatar de seiryujay
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 950
    Points : 722
    Points
    722
    Par défaut
    Citation Envoyé par franfr57
    Voici le code de ma classe Mur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    	//Numéro de la ligne sur laquelle se trouve l'objet
    	protected static int x;
    	//Numéro de la colonne sur laquelle se trouve l'objet
    	protected static int y;
    Euh, si tu prends des coordonnées cartésiennes de bases, moi j'aurai tendance à dire que :
    - x = abscisse => numéro de colonne
    - y = ordonnées => numéro de ligne

Discussions similaires

  1. TK Text Problème de coordonnées
    Par Luciefer dans le forum Interfaces Graphiques
    Réponses: 5
    Dernier message: 04/07/2007, 15h34
  2. problème de coordonnées ou autre problème ?
    Par superC dans le forum DirectX
    Réponses: 8
    Dernier message: 19/02/2007, 21h20
  3. Problème de coordonnées dans des balises
    Par Zebulon777 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 06/02/2007, 07h26
  4. Réponses: 2
    Dernier message: 16/10/2005, 19h19
  5. problème de coordonnées
    Par Yennick dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 11/03/2005, 17h32

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