-1

我正在尝试用 Java 制作太空入侵者类型的游戏,但无法弄清楚为什么游戏无法运行。这是错误

java.lang.NullPointerException
at UFO_Game.checkForHit(UFO_Game.java:131)
at UFO_Game.setup(UFO_Game.java:109)
at UFO_Game.run(UFO_Game.java:44)
at acm.program.Program.runHook(Program.java)
at acm.program.Program.startRun(Program.java)
at acm.program.Program.start(Program.java)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

这是出现错误的代码。

public void checkForHit(){
    GObject CHECK = getElementAt(Bullet.getX(), Bullet.getY());
    if(CHECK == SHIP){
        removeAll();
    }

顺便说一句,我正在使用斯坦福方法论中的 ACM 东西。

4

1 回答 1

3

我想这Bullet是你UFO_Game班上的一个领域。它没有被分配一个有效的值(对象字段用 初始化null)。当您尝试调用getX()时,NullPointerException会抛出 a。为避免这种情况,Bullet请在构造每个UFO_Game对象时初始化该字段。

顺便说一句,Java 中的方法和字段名称应该以小写字母开头。任何熟悉 Java 的人都会将Bullet.getX()其视为对静态(类)方法的调用。

于 2013-01-19T00:04:03.253 回答