1

画面に .png を描画しようとしていますが、エラーが発生し続けます。私が取り組んでいるクラスは、Screen のサブクラスです。

これが私が得るエラーです:

FATAL EXCEPTION GLThread 1335 java.lang.NullPointerException  at SplashScreen.java.32

この行は次のとおりです。

batch.begin()

Screen サブクラス内のコードは次のとおりです。

private SpriteBatch batch;
private Texture splashTexture;
private Camera camera;


 final int CAMERA_WIDTH = Gdx.graphics.getWidth();
static final int CAMERA_HEIGHT = Gdx.graphics.getHeight();



@Override
public void render(float delta) {
   Gdx.gl.glClearColor(0, 0, 0, 1);
   Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
   batch.begin();
   batch.draw(splashTexture, 0, 0);
   batch.end();

}

@Override
public void resize(int width, int height) {
   // TODO Auto-generated method stub

}

@Override
public void show() {
   splashTexture = new Texture(Gdx.files.internal("splash.png"));
   camera = new OrthographicCamera(CAMERA_WIDTH, CAMERA_HEIGHT);
    camera.position.set(CAMERA_WIDTH, CAMERA_HEIGHT, 0);
}
4

2 に答える 2

1

SpriteBatch は null です。テクスチャとカメラを作成しますが、バッチは作成しません。あなたが言及したブレークポイントはそれとは何の関係もありません。

private SpriteBatch batch;
private Texture splashTexture;
private Camera camera;

...

@Override
public void show(){
    splashTexture = new Texture(Gdx.files.internal("splash.png"));
    camera = new OrthographicCamera(CAMERA_WIDTH, CAMERA_HEIGHT);
    camera.position.set(CAMERA_WIDTH, CAMERA_HEIGHT, 0);

    batch = new SpriteBatch(); //create it like this.
}

...
于 2014-01-10T08:07:47.203 に答える
0
batch=new spritebatch();

そしてあなたの問題は解決されました。

于 2014-01-10T13:32:29.457 に答える