2013-09-28 52 views
0

所以我试图加载使用Slick2D的图像,但由于某种原因,我得到以下错误,当我试着将图像绘制到屏幕:Slick2D加载图像不会工作

Sat Sep 28 16:37:59 NZST 2013 ERROR:null 
java.lang.NullPointerException 
    at org.newdawn.slick.Graphics.drawImage(Graphics.java:1350) 
    at org.newdawn.slick.Graphics.drawImage(Graphics.java:1399) 
    at Game.render(Game.java:58) 
    at org.newdawn.slick.GameContainer.updateAndRender(GameContainer.java:703) 
    at org.newdawn.slick.AppGameContainer.gameLoop(AppGameContainer.java:456) 
    at org.newdawn.slick.AppGameContainer.start(AppGameContainer.java:361) 
    at Game.main(Game.java:42) 
Sat Sep 28 16:37:59 NZST 2013 ERROR:Game.render() failure - check the game code. 
org.newdawn.slick.SlickException: Game.render() failure - check the game code. 
    at org.newdawn.slick.GameContainer.updateAndRender(GameContainer.java:706) 
    at org.newdawn.slick.AppGameContainer.gameLoop(AppGameContainer.java:456) 
    at org.newdawn.slick.AppGameContainer.start(AppGameContainer.java:361) 
    at Game.main(Game.java:42) 

我用这载入我的形象:

import org.newdawn.slick.Image; 
import org.newdawn.slick.SlickException; 

public class Textures { 

    static Image grass; 
    Game game; 


    public Textures() { 
      try { 
       grass = new Image("grass.jpg"); 
      } catch (SlickException e) { 
       e.printStackTrace(); 
      } 
    } 

} 

我用这画我的形象:

for(int x = 0; x < app.getWidth(); x+=32) { 
    for(int y = 0; y < app.getHeight(); y+=32) { 
     g.drawImage(textures.grass, x, y); 
    } 
} 
+0

你曾经构建过一个Texture对象吗?否则,构造函数将永远不会被调用,并且grass将为空。 – Clark

+0

哪行是'Graphics.java'的第1350行? – Barett

回答

1

如果你得到一个NullPointerException试图绘制Image时,通常是因为图像加载器在指定的位置未找到图像。如果您使用的是Eclipse,请确保将图像存储在source folder(例如名为“resources”)中。这可确保图像在编辑时移动到bin文件夹(可能需要刷新源文件夹)。

无论您的设置如何,请确保图像路径正确。