Problème de création d'objet
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:
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:
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:
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());
}
} |