在主类中使用libgdx com.badlogic.gdx.Preferences?

3

我希望在游戏重新启动时使用从选项菜单保存的偏好设置来启动一个libgdx游戏。但是每当我尝试实例化一个偏好设置文件时,都会出现空指针异常?

Exception in thread "main" java.lang.NullPointerException
    at exampleGame.Main.main(Main.java:11)

第11行是Preferences prefs = Gdx.app.getPreferences("game.prefs");。我也尝试使用一个自己创建的类来完成相同的任务,但只是从这个类中获取。
可以这样写:PreferencesLoader prefs = new PreferencesLoader();,并在该类内使用Preferences prefs = Gdx.app.getPreferences("game.prefs");
那么如何正确地实例化Preferences prefs = Gdx.app.getPreferences("game.prefs")以便加载偏好设置呢?
1个回答

5

这是正确的:

Preferences prefs = Gdx.app.getPreferences("game.prefs");

但是你正在尝试在库初始化之前执行此操作。至少这是我能推断出来的,因为它只是主Java类中的第11行。

Exception in thread "main" java.lang.NullPointerException at exampleGame.Main.main(Main.java:11)

在初始化完成之前,所有的Gdx.xxx都将为null。


啊,你说得对...我完全忘记了,因为还没有运行这行代码:new LwjglApplication(new exampleGame(), cfg); - sammy3597
有没有办法在主方法中使用Gdx调用,而不是在发送运行“new LwjglApplication(new examplGame(),cfg)”之前,其中cfg是LwjglApplicationConfiguration?这样我就可以从文件中发送信息了吗? - sammy3597
无法完成。所有的 Gdx.xxx 都是在初始化时创建的,因为它们在每个平台上都不同。 - Daahrien

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接