1

スプラッシュ画像を表示するだけのスプラッシュクラスがありますが、nullポインタ例外が発生します。私がこの方法が機能していた場所で他のJavaアプリケーションを作成したので、それは動揺します。どこが間違っているのかを知るためにたくさんのドキュメントを読みましたが、それを見つけることができないようです。

Splash.java class
package com.me.fypapplication;

import com.badlogic.gdx.Game;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.Screen;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.OrthographicCamera;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.Texture.TextureFilter;
import com.badlogic.gdx.graphics.g2d.Sprite;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;

public class Splash implements Screen{

private SpriteBatch spriteBatch;
private Texture splashTexture;
private Sprite sprite;

private Game myGame;

private OrthographicCamera camera;

public Splash (Game g)
{
    myGame = g;
}

public void create() {

    camera = new OrthographicCamera(800,400);

    splashTexture = new Texture(Gdx.files.internal("data/splashtest.gif"));

    sprite = new Sprite(splashTexture);
    sprite.setSize(512, 512);
    sprite.setPosition(256, 256);

    spriteBatch = new SpriteBatch();

    splashTexture.setFilter(TextureFilter.Linear, TextureFilter.Linear);


}

@Override
public void render(float delta) {

    Gdx.gl.glClearColor(0.1f, 0.1f, 0.1f, 1);
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

    camera.update();

    spriteBatch.begin();
    sprite.draw(spriteBatch);
    spriteBatch.end();

}

誰かが助けることができれば大いに感謝されます!

編集!エラーを忘れた

Exception in thread "LWJGL Application" java.lang.NullPointerException
at com.me.fypapplication.Splash.render(Splash.java:51)
at com.badlogic.gdx.Game.render(Game.java:46)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:190)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:110)
4

1 に答える 1

3

create()を呼び出しているものがないため、カメラはnullです。libgdx Screenを実装していて、物事を初期化する必要がある場合は、render()が呼び出される前にshow()メソッドをオーバーライドする必要があります。

于 2013-03-06T13:38:21.193 に答える