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

2D Java Discussion :

[Slick2D] Problème de chargement de plusieurs images


Sujet :

2D Java

  1. #1
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2013
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2013
    Messages : 41
    Par défaut [Slick2D] Problème de chargement de plusieurs images
    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.

  2. #2
    Membre éclairé Avatar de Pecose
    Homme Profil pro
    Batiment
    Inscrit en
    Février 2013
    Messages
    311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Batiment
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2013
    Messages : 311
    Par défaut
    Bonjour,
    Il faut pas utiliser Graphics pour afficher les images?
    Désolé, j'ai pas bien compris ton code.

Discussions similaires

  1. [QImage] Problème de chargement de certaines images JPEG
    Par Difré91 dans le forum Débuter
    Réponses: 3
    Dernier message: 28/10/2013, 20h52
  2. problème de chargement d'une image
    Par narutoe dans le forum ASP.NET MVC
    Réponses: 0
    Dernier message: 15/06/2012, 16h45
  3. chargement de plusieurs images
    Par cameleone31 dans le forum Traitement d'images
    Réponses: 1
    Dernier message: 23/04/2012, 00h54
  4. chargement de plusieurs images
    Par TDDev dans le forum MATLAB
    Réponses: 2
    Dernier message: 08/09/2008, 11h06
  5. Réponses: 6
    Dernier message: 30/07/2007, 12h10

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