gpt4 book ai didi

java - 使用 drawImage 时出现 NullPointerException(使用 Slick2d)

转载 作者:行者123 更新时间:2023-11-29 09:29:45 25 4
gpt4 key购买 nike

将一些基本代码放入游戏的开头,并且无缘无故地遇到了这个令人讨厌的 NullPointerException 的问题。

Loader.java(主类)

public class Loader extends StateBasedGame {
public static final int menu = 0;
public static final int ingame = 1;

public Loader() {
super("insertGameName");
this.addState(new Menu(menu));
this.addState(new Ingame(ingame));

}

public static void main(String args[]) throws SlickException {

AppGameContainer gameContainer = new AppGameContainer(new Loader());
gameContainer.setDisplayMode(rpg.Settings.WIDTH, rpg.Settings.HEIGHT, false);
gameContainer.setVSync(true);
try {
gameContainer.start();
} catch (SlickException e) {
e.printStackTrace();
}
}

public void initStatesList(GameContainer arg0) throws SlickException {
this.getState(0).init(arg0, this);
// this.getState(1).init(arg0, this);
this.enterState(menu);
}

和Menu.java(初始游戏状态)

public class Menu extends BasicGameState {
Image logo;

public Menu(int menu) {
}

public void init(GameContainer arg0, StateBasedGame arg1) throws SlickException {
logo = new Image("res/logo.png");
}

public void render(GameContainer arg0, StateBasedGame arg1, Graphics g) throws SlickException {
g.setBackground(Color.red);
g.drawImage(logo, 0, 0);
}

public void update(GameContainer arg0, StateBasedGame arg1, int arg2) throws SlickException {

}

public int getID() {

return 0;
}

NullPointerException 位于 Menu.java:23 (g.drawImage(logo, 0, 0);我的印象是所有这些代码都已正确完成,所以当我发现并非如此时,我感到很惊讶。

旁注:当稍微修改一下代码时,我发现将 g.drawImage(logo,0,0) 中的“logo”更改为“newImage("res/logo.png")”会停止 NullPointerException,但是不显示图像,仅显示空白的红色背景。

最佳答案

你的方法

render(GameContainer arg0, StateBasedGame arg1, Graphics g)

没有获得任何 Graphics 对象,这就是为什么当您通过 g 调用任何方法时它会给出 NullPointException因为它被赋予了一个空值。

找出调用此方法的位置,并查看传递的参数是否正确。

关于java - 使用 drawImage 时出现 NullPointerException(使用 Slick2d),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24924575/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com