Java Slick2D drawImage nullpointer

问题描述 投票:0回答:1

这是我的代码

package game.src;


import java.util.ArrayList;

import org.lwjgl.opengl.Drawable;
import org.newdawn.slick.AppGameContainer;
import org.newdawn.slick.BasicGame;
import org.newdawn.slick.Color;
import org.newdawn.slick.GameContainer;
import org.newdawn.slick.Graphics;
import org.newdawn.slick.Image;
import org.newdawn.slick.SlickException;


public class Main extends BasicGame{

    public static final int WIDTH = 1920;
    public static final int HEIGHT = 1080;
    private Image grass = null; //Initializing the image







    public Main() {
            super("Wizard game");
        }

        public static void main(String[] arguments)
        {
            try
            {
                AppGameContainer app = new AppGameContainer(new Main());
                app.setDisplayMode(WIDTH, HEIGHT, false);
                app.setAlwaysRender(true);
                app.start();

            }
            catch (SlickException e)
            {
                e.printStackTrace();
            }
        }

        @Override
        public void init(GameContainer container) throws SlickException
        {

            Image grass = new Image("res/grass.png"); //Location of picture (see link below)

        }

        @Override
        public void update(GameContainer container, int delta) throws SlickException
        {
        }

        public void render(GameContainer container, Graphics g) throws SlickException{
        g.drawImage(grass, 0, 0); //This is the crash location



        }
    }

以下是控制台的错误信息

Fri Mar 28 22:21:36 CDT 2014 INFO:Slick Build #237
Fri Mar 28 22:21:36 CDT 2014 INFO:LWJGL Version: 2.9.0
Fri Mar 28 22:21:36 CDT 2014 INFO:OriginalDisplayMode: 1920 x 1080 x 32 @60Hz
Fri Mar 28 22:21:36 CDT 2014 INFO:TargetDisplayMode: 1920 x 1080 x 0 @0Hz
Fri Mar 28 22:21:36 CDT 2014 INFO:Starting display 1920x1080
Fri Mar 28 22:21:36 CDT 2014 INFO:Use Java PNG Loader = true
WARNING: Found unknown Windows version: Windows 7
Attempting to use default windows plug-in.
Loading: net.java.games.input.DirectAndRawInputEnvironmentPlugin
Fri Mar 28 22:21:37 CDT 2014 INFO:Found 5 controllers
Fri Mar 28 22:21:37 CDT 2014 INFO:0 : USB Multimedia Keyboard
Fri Mar 28 22:21:37 CDT 2014 INFO:1 : USB Multimedia Keyboard
Fri Mar 28 22:21:37 CDT 2014 INFO:2 : USB Multimedia Keyboard
Fri Mar 28 22:21:37 CDT 2014 INFO:3 : Turtle Beach PX21 Headset
Fri Mar 28 22:21:37 CDT 2014 INFO:4 : USB  AUDIO  
Fri Mar 28 22:21:37 CDT 2014 ERROR:null
java.lang.NullPointerException <--- I'm guessing it can't find the picture so it thinks it's null.
    at org.newdawn.slick.Graphics.drawImage(Graphics.java:1384)
    at org.newdawn.slick.Graphics.drawImage(Graphics.java:1433)
    at game.src.Main.render(Main.java:65)
    at org.newdawn.slick.GameContainer.updateAndRender(GameContainer.java:688)
    at org.newdawn.slick.AppGameContainer.gameLoop(AppGameContainer.java:411)
    at org.newdawn.slick.AppGameContainer.start(AppGameContainer.java:321)
    at game.src.Main.main(Main.java:41)
Fri Mar 28 22:21:37 CDT 2014 ERROR:Game.render() failure - check the game code. <-- No shit
org.newdawn.slick.SlickException: Game.render() failure - check the game code. <-- No shit
    at org.newdawn.slick.GameContainer.updateAndRender(GameContainer.java:691)
    at org.newdawn.slick.AppGameContainer.gameLoop(AppGameContainer.java:411)
    at org.newdawn.slick.AppGameContainer.start(AppGameContainer.java:321)
    at game.src.Main.main(Main.java:41)

我不知道是怎么回事,我很确定我正确安装了LWJGL和Slick。我怀疑由于某些原因,路径没有工作,使得图片等于空。

我的路径图片 http:/imgur.comvLRGIcf

java image nullpointerexception slick2d
1个回答
0
投票

在你的init方法中,你影射了 grass 变量。尝试改变 Image grass = new Image("res/grass.png"); 到只是 grass = new Image("res/grass.png");,以便将该字段设置为 grass 而不是在方法中创建一个新的变量。

因为你从来没有从null改变草场,所以当你试图绘制草场时,你会得到一个NullPointerException。

© www.soinside.com 2019 - 2024. All rights reserved.