Bonjour,

Je débute Slick2D et j'ai un soucis, j'ai déjà réussi à creer un mini-jeu grâce à Slick2D et désormais je souhaiterais en créer un second un plus important.
C'est un jeu de tuile (un POKEMON-like) cepandant la carte et le sprite du personnage se chargent idépendament mais lorsque les deux sont chargé et affiché à l'écran, j'ai des erreurs de toute sorte (Nullpointer sur l'image, image too big, ...).

Mon personnage :
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
public class Personnage {
	private int sens;
	private SpriteSheet tileset;
 
	public Personnage(String image){
		this.sens = 0;
		try {
			this.tileset = new SpriteSheet(getClass().getResource(image).getFile(),32,32);
			this.tileset.startUse();
		} catch (SlickException e){
			System.out.println("Slick Erreur: "+e.getMessage());
		} catch (Exception e){
			e.printStackTrace();
		}
	}
 
	public void render(){
		this.tileset.getSprite(this.sens, 0).draw(7*32, 7*32);;
	}
}
Ma carte :
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
public class Map {
	private int w;
	private int h;
	private int id;
	private String name;
	private TilesSet tileset;
	private Tuile[][] tuiles;
	private Fenetre fenetre;
	private int tiledefault;
	private int tilesol;
 
	public Map(int id,int w,int h,String name,Fenetre fenetre,int tiledefault,int tilesol,Tuile[][] tuiles,TilesSet tileset){
		this.id=id;
		this.w=w;
		this.h=h;
		this.name=name;
		this.tileset=tileset;
		this.tuiles=tuiles;
		this.fenetre=fenetre;
		this.tiledefault=tiledefault;
		this.tilesol=tilesol;
	}
 
	@Override
	public String toString() {
		String s = "Map [id="+id+"] [w=" + w + ", h=" + h + ", name=" + name + ", tileset=" + tileset + ", tuiles=[";
		for (Tuile[] is : tuiles) {
			s += "[";
			for (Tuile i : is) {
				s += i+",";
 
			}
			s += "]";
		}
		s += "], fenetre=" + fenetre + ", tiledefault=" + tiledefault + ", tilesol="
				+ tilesol + "]";
		return s;
	}
 
	public int getId() {
		return id;
	}
 
	public void render() {
		for(int y = 0; y<h; y++){
			for(int x = 0; x<w; x++){
				int num = this.tuiles[y][x].getNum();
				int w = this.tileset.getNbtilesX();
				int h = this.tileset.getNbtilesY();
				int i = num%w;
				int j = num/w;
				Image img = this.tileset.getImage().getSprite(i,j);
				img.draw(x*32, y*32);
			}
		}
	}
}
Et là les deux fonctions importante de ma classe principale :
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
public void init(GameContainer container) throws SlickException {
    	this.container = container;
   		container.setShowFPS(false);
		this.timepast=0;
		this.perso=new Personnage("/img/spritePerso.png");
		this.bd = new BaseDeDonnee("src/legendaria/resources/Legendary.db");
		this.bd.connect();
		this.maps=this.bd.getMaps();
		try {
			this.map=this.getMap(1);
		} catch (Exception e) {
			e.printStackTrace();
		}
        }
 
	public void render(GameContainer arg0, Graphics arg1) throws SlickException {
		this.map.render();
		this.perso.render();
	}
Voilà, est-ce que quelqu'un sait où est le soucis ? Parce que moi, je ne comprend vraiment pas.