gpt4 book ai didi

java - 渲染时出现 NullPointerException 错误

转载 作者:行者123 更新时间:2023-12-02 05:18:34 25 4
gpt4 key购买 nike

每当我按空格键(发射“导弹”)时,我都会收到此错误,而且我根本不知道如何修复它。

Exception in thread "Thread-0" java.lang.NullPointerException
at com.game.main.Bullet.render(Bullet.java:26)
at com.game.main.Controller.render(Controller.java:58)
at com.game.main.Game.render(Game.java:155)
at com.game.main.Game.run(Game.java:108)
at java.lang.Thread.run(Thread.java:745)

我将列出错误中的代码,因为我有 9 个类。

Bullet 错误行:

g.drawImage(tex.missile, (int)x, (int)y, null);

tex.missile 是纹理类中的 BufferedImage 变量,并设置为

missile = ss.grabImage(2, 1, 32, 32);

ss 是一个 SpriteSheet 类,并设置为 new SpriteSheet(game.getSpriteSheet());

SpriteSheet 类只是获取 SpriteSheet 并将每个方 block 设置为行/列等。那里的所有内容都可以工作,因为我的玩家和敌人都可以工作。

Controller 错误行:

tempBullet.render(g);

Game.render 错误行:

c.render(g);

Game.run 错误行:

render();

我非常怀疑它与 Game 类或类似的东西有任何关系,但我认为它与 Bullet 类有关,但再一次。我可能是,而且很可能是错的。我认为有些东西可能设置不正确。

如果你想让我展示全类同学,我会的。只要告诉我您需要哪一个即可。

编辑: g.drawImage 在此方法内部

public void render(Graphics g){ 
g.drawImage(tex.missile, (int)x, (int)y, null);
}

最佳答案

如果您尝试对 null 引用执行操作(例如方法调用),则会发生 NullPointerException。因此,如果您在这一行 g.drawImage(tex.missile, (int)x, (int)y, null); 上遇到此异常,请检查以下变量之一是否为 :

  • g
  • tex
  • x
  • y
如果您使用像 Integer 这样的包装类,

xy 可以为 null。为图像观察者提供的 null 引用(drawImage 方法的第四个参数)不会导致 NullPointerException,因此无需在那里改变一些东西。

关于java - 渲染时出现 NullPointerException 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26694264/

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