Bonjour ^^,

Je vous expose mon problème : Je n'arrive pas a accéder a un tableau d'objet que j'ai crée, voici le code des fonctions puis de l'objet. Peut-être pourriez vous me venir en aide ...


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
m.props = new TileProp[m.nbtilesX*m.nbtilesY]; //j'ai vérifié la taille, elle est de 88
 
SDLRect testRect = new SDLRect();
                        testRect.setWidth(m.LARGEUR_TILE);
                        testRect.setHeight(m.HAUTEUR_TILE);
                        testRect.setX((short)(i*m.LARGEUR_TILE));
                        testRect.setY((short)(j*m.HAUTEUR_TILE));
                        System.out.println("test1");//Le code génère une Java.NullPointerException ici
                        m.props[0].setR(testRect);
                        System.out.println("test2");//
                        m.props[0].setMur(0);
                        if (mur[0].equals("mur")) m.props[0].setMur(1);
Puis l'objet :


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
public class TileProp {
 
    private SDLRect R;
    private int mur;
 
    public TileProp()
    {
        R = new SDLRect();
        mur = 0;
    }
 
    public SDLRect getR()
    {
        return R;
    }
 
    public int getMur()
    {
        return mur;
    }
 
    public void setR(SDLRect rectangle)
    {
        R = rectangle;
    }
 
    public void setMur(int newMur)
    {
        mur = newMur;
    }
 
}
Merci à vous et bonne fête de Noël

Amicalement

rudelune

PS: J'ai rajouté les this.R et this.mur, ils ne sont pas la cause du problème

Edit : Voici mon vrai code :
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
public static void chargerMap_tileset(File F, Map m)
    {
        int numtile, i, j;
        try {  
            InputStream ips=new FileInputStream(F);
            InputStreamReader ipsr=new InputStreamReader(ips);
            BufferedReader br=new BufferedReader(ipsr);
            int lignes = 0;
            while (br.readLine() !=null)
            {
                lignes +=1;
            }
 
            br.close();
 
 
            String[] level = new String[lignes];
 
            InputStream ips2=new FileInputStream(F);
            InputStreamReader ipsr2=new InputStreamReader(ips2);
            BufferedReader br2=new BufferedReader(ipsr2);
            for (i=0; i<lignes; i++)
            {
                level[i] = br2.readLine();
            }
 
            br2.close();
 
 
            if (level[0].equals("#tileset"))
            {
                m.tileset = loadImage32("ressources/tileset/"+level[1]);
                m.nbtilesX = Integer.parseInt((level[2].split(" "))[0]);
                m.nbtilesY = Integer.parseInt((level[2].split(" "))[1]);
                m.LARGEUR_TILE = m.tileset.getWidth()/m.nbtilesX;
                m.HAUTEUR_TILE = m.tileset.getHeight()/m.nbtilesY;
 
                m.props = new TileProp[m.nbtilesX*m.nbtilesY];
 
 
 
                int tile = 3;
                while (level[tile].contains("tile")) tile++;
                String[] mur = new String[tile-3];
                for (i=3, j=0; i<tile; i++, j++)
                {
                    mur[j] = (level[i].split(": "))[1];
                }
 
 
                for(j=0,numtile=0;j<m.nbtilesY;j++)
                {
                    for(i=0;i<m.nbtilesX;i++,numtile++)
                    {
                        ////////////////////////////////////////////////////////////////
                        SDLRect testRect = new SDLRect();
                        testRect.setWidth(m.LARGEUR_TILE);
                        testRect.setHeight(m.HAUTEUR_TILE);
                        testRect.setX((short)(i*m.LARGEUR_TILE));
                        testRect.setY((short)(j*m.HAUTEUR_TILE));
                        System.out.println("test1");//
                        m.props[numtile].setR(testRect);
                        System.out.println("test2");//
                        m.props[numtile].setMur(0);
                        if (mur[numtile].equals("mur")) m.props[numtile].setMur(1);
                    }
                }
 
 
            }
 
 
        }catch (Exception e){
            System.out.println(e.toString());
        }
    }