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 ...
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 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);
Merci à vous et bonne fête de Noël
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; } }
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()); } }
Partager