2016-09-23 56 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