2016-09-23 75 views
0

我想從一個spritesheet加載圖像,並且因爲我做了一個2D遊戲已經有一段時間了,所以我想我可能忘記了一些重要的東西。我已將res添加到類文件夾,並且嘗試了很長時間才加載它,但沒有成功。我可能已經將它加載到錯誤的構建路徑中,但我不這麼認爲。 以下是錯誤:BufferedImage正在從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) 

而且這裏是我加載圖像

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

最後,這是我在哪裏加載圖像:

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); 
} 

有誰看到它沒有加載的原因?

回答

1

找不到資源。您可以檢查罐子是否爲拉鍊格式。最有可能的路徑開始錯誤。它也是區分大小寫的。

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

謝謝你的工作。我沒有任何拼寫錯誤,但是當我刪除'/ res'時,它工作得很好。謝謝 – TheGamerPlayz