0

私はプログラミングクラスの入門プロジェクトに取り組んでいますが、ちょっとした問題に遭遇しました。横スクロールを作っていて、今はスコアカウンターを作っています。私の問題は、act メソッド (フレームごとに 1 回呼び出される) 以外でカウンター クラスへの参照を作成しようとすると、null ポインター例外エラーが発生することです。ご覧になりたい場合は、こちらから私のコードを含む zip ファイルをダウンロードできます。

編集:問題のあるコードは次のとおりです。

public class HeroMissile extends Missiles

{

/**
 * Act - do whatever the HeroMissile wants to do. This method is called whenever
 * the 'Act' or 'Run' button gets pressed in the environment.
 */
public void act() 
{
    move(8);
    remove();
}    

public void remove() {
    if(isTouching(Drone.class)) {
        removeTouching(Drone.class);
        getWorld().addObject(new Explosion(), getX(), getY());
        getWorld().removeObject(this);
        addScore();
        return;
    }
}

public void addScore() {
    City cityWorld = (City) getWorld();
    **Counter scoreCounter = cityWorld.getCounter();**
    scoreCounter.add(1);
}

}

4

1 に答える 1

0

世界から自分自身を削除した後、あなたはgetWorld()[in ]を呼び出しています。addScore()この場合、getWorld()は null を返すため、null ポインター例外が発生します。世界から自分を削除する前に、順序を変更しremove()てスコアを追加してみてください。

于 2015-01-29T08:39:00.387 に答える