私は4つのクラスを持っています。1 つは抽象エンティティ クラス、1 つはボール クラス、1 つはメイン クラス、もう 1 つはスクリーン クラスです。
ボール クラスはエンティティ クラスを拡張し、5 つの変数を持ちます。
screen 関数には paint メソッドがあります。
public void paint(Graphics g){
super.paint(g);
ball.paint(g);
}
もちろん、ball.paint を使用するには、そのオブジェクトを作成する必要があります。そこで、ボール オブジェクトを作成します。
Ball ball;
そして、これをスクリーン コンストラクターに追加する必要があるためです (Ball には 5 つの変数を受け取るコンストラクターがあります)。
public Screen(){
ball = new Ball(ball.getWeight(), ball.getWidth(), ball.getHeight(), ball.getX(), ball.getX());
}
これでエラーは発生しませんが、プログラムを実行すると、コンソールに次のエラーが表示されます。
Exception in thread "main" java.lang.NullPointerException
at h3x.engine.gfx.Screen.<init>(Screen.java:18)
at h3x.engine.Main.main(Main.java:16)
メインクラスの 16 行目は次のとおりです。
frame.add(new Screen());
...そして、screen クラスの 18 行目は次のとおりです。
ball = new Ball(ball.getWeight(), ball.getWidth(), ball.getHeight(), ball.getX(), ball.getX());
だから私の質問は、なぜこれが起こっているのか、どうすれば修正できるのかということです. 必要に応じて、コード全体をクラスに入れることができます。
ありがとう!