有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java LIBGDX设置屏幕空指针异常

实际上我对libgdx有点问题

打字游戏。爪哇

public class TypingGame extends Game {

TypingGame game;

GameScreen gameScreen;
GameOverScreen gameOverScreen;

@Override
public void create() {      

    gameScreen = new GameScreen();
    gameOverScreen = new GameOverScreen(game);

    Texture.setEnforcePotImages(false);
    setScreen(new GameScreen()); // Default screen : Gamescreen

}


}

我希望能够通过使用setScreen更改当前屏幕。以下是我所做的:

游戏屏幕。爪哇

public class GameScreen implements Screen, InputProcessor{

private World world;
private WorldRenderer renderer;
private WorldController controller;
TypingGame game;


@Override
public void render(float delta) {

    Gdx.gl.glClearColor(0.5f, 0.1f, 0.1f, 1);
    Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
    Timer.elapsedTime(delta);
    renderer.render(delta);
    controller.update(delta);


    if(Player.health == 0) game.setScreen(new GameOverScreen(game)); // If the player died, switch to GameOverScreen
}

// And so on...

游戏在屏幕上。爪哇

public class GameOverScreen implements Screen{


TypingGame game;
GameScreen gameScreen;

public GameOverScreen(TypingGame game){
    this.game = game;
    gameScreen = new GameScreen();
}

@Override
public void render(float delta) {


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

}

@Override
public void resize(int width, int height) {


}

@Override
public void show() {


}

@Override
public void hide() {

}

@Override
public void pause() {

}

@Override
public void resume() {

}

@Override
public void dispose() {

}

}

我不明白我为什么会有这个错误:

Exception in thread "LWJGL Application" com.badlogic.gdx.utils.GdxRuntimeException: java.lang.NullPointerException
at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:113)
Caused by: java.lang.NullPointerException

这应该很容易使用,但我唯一能真正使用setScreen的类是。。。打字游戏。爪哇

非常感谢您的帮助,谢谢您,我的英语很差

西娅


共 (0) 个答案