2016-09-23 3 views
0

Ich versuche ein Bild von einem Spritesheet zu laden und es ist eine Weile her, seit ich ein 2D-Spiel gemacht habe, also glaube ich, dass ich etwas Wichtiges vergessen habe. Ich habe res zum Klassenordner hinzugefügt und habe versucht, es für eine ganze Weile ohne Erfolg zu laden. Ich habe es vielleicht in den falsch gebauten Weg geladen, aber ich glaube nicht. Hier ist der Fehler:BufferedImage lädt nicht von png

Exception in thread "Thread-2" java.lang.IllegalArgumentException: input == null! 
    at javax.imageio.ImageIO.read(Unknown Source) 
    at me.xthegamerplayz.Dodger.graphics.ImageLoader.loadImage(ImageLoader.java:12) 
    at me.xthegamerplayz.Dodger.graphics.Assets.init(Assets.java:15) 
    at me.xthegamerplayz.Dodger.Dodger.init(Dodger.java:30) 
    at me.xthegamerplayz.Dodger.Dodger.run(Dodger.java:88) 
    at java.lang.Thread.run(Unknown Source) 

Und hier ist, wo ich das Bild am Laden

public static BufferedImage loadImage(String path){ 
     try { 
      return ImageIO.read(ImageLoader.class.getResource(path)); 
     } 
     catch (IOException e) { 
      e.printStackTrace(); 
      System.exit(1); 
     } 
     return null; 
    } 

Und schließlich ist das, wo ich die Bilder bin Laden:

public static void init() { 
    sheet = new SpriteSheet(ImageLoader.loadImage("/res/entities/entitySprites.png")); 

    player = sheet.crop(0, 0, width, height); 
    enemy = sheet.crop(1, 0, width, height); 
} 

Hat jemand sehen ein Grund, warum es nicht lädt?

Antwort

1

Es kann die Ressource nicht finden. Sie können das Glas im Zip-Format prüfen. Wahrscheinlich beginnt der Pfad falsch. Es ist auch Groß-und Kleinschreibung.

sheet = new SpriteSheet(ImageLoader.loadImage("/entities/entitySprites.png")); 
+0

Danke das hat funktioniert. Ich hatte nichts falsch geschrieben, aber als ich das '/ res' entfernte, funktionierte es gut. Vielen Dank – TheGamerPlayz