2015-02-16 2 views
0
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); 

Мог ли я просто «попробовать, поймать? потому что я знаю, что правильные размеры сохранены, и я могу изменить разрешение экрана в меню опций.LibGDX дает nullPointer при запуске на основе предпочтений

ответ

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) 
+0

Очень полезно, спасибо! – Zymosis