-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()、 aNullPointerExceptionがスローされます。これを回避するには、各オブジェクトBulletを構築するときにフィールドを初期化します。UFO_Game

ところで、Java のメソッドとフィールド名は小文字で始める必要があります。Java に精通している人なら誰でもBullet.getX()、静的 (クラス) メソッドの呼び出しとして読むことができます。

于 2013-01-19T00:04:03.253 に答える