LibGDX在根据首选项启动时给出nullPointer

时间:2015-02-16 16:44:06

标签: windows libgdx preferences options launcher

    config.vSyncEnabled = true;
    config.fullscreen = false;

    config.width = Gdx.app.getPreferences(WanderingRuin.TITLE).getInteger("resolution width");
    config.height = Gdx.app.getPreferences(WanderingRuin.TITLE).getInteger("resolution height");

    new LwjglApplication(new WanderingRuin(), config);

难道我不能'尝试,赶上'吗?因为我知道保存了正确的尺寸,我可以在选项菜单中更改屏幕的分辨率。

1 个答案:

答案 0 :(得分:4)

你不能这样做,因为似乎LibGdx的东西还没有被初始化。 如果您进行快速测试,请执行以下操作:

public static void main (String[] arg) {
    LwjglApplicationConfiguration config = new LwjglApplicationConfiguration();
    System.out.println(Gdx.graphics.getWidth());
    new LwjglApplication(new SomeGame(), config);
}

您会注意到这也会抛出NullPointerException。

一个简单的解决方案是稍后在Screen类中执行此操作。然后,您可以完美地获取首选项,并可以使用以下命令调整窗口大小:

Gdx.graphics.setDisplayMode(width, height, fullscreen)