gpt4 book ai didi

java - 应用程序启动后如何更改 LwjglApplicationConfiguration

转载 作者:行者123 更新时间:2023-12-02 03:41:57 25 4
gpt4 key购买 nike

我正在通过进化计算编写应用程序,如果我以 60fps 渲染每次迭代,则需要花费大量时间,因此我以这种方式更改了我的 DesktopLauncher :

public class DesktopLauncher {
public static void main (String[] arg) {
LwjglApplicationConfiguration config = new LwjglApplicationConfiguration();
config.height = 800;
config.width = 800;
config.vSyncEnabled = false; // Setting to false disables vertical sync
//config.foregroundFPS = 60; // Setting to 60 fps throttling
config.foregroundFPS = 0; // Setting to 0 disables foreground fps throttling
config.backgroundFPS = 0; // Setting to 0 disables background fps throttling
new LwjglApplication(new MyApp(), config);
}
}

现在我们说;每次迭代完成后,我希望我的应用程序限制为 60 fps(或启用 V-Sync),如何访问/修改配置?

public class RandomScreenClass {
...
@Override
public void render(float deltaTime) {
if(..)
{
//modify the fps / turn on v-sync
}

最佳答案

我找不到更改 LwjglConfig 的“奇特”方法,我找不到 setter/getter ,但这可行:

  1. 在核心项目中创建一个包含两个方法的接口(interface),例如 setForegroundFPS 和 setBackgroundFPS,如下所示:

    public interface Callback {
    void setForegroundFPS(int foregroundFPS);
    void setBackgroundFPS(int backgroundFPS);
    }
  2. 将回调添加为游戏类的成员,并创建适当的构造函数来接收它

    public YourGame(Callback callback) {
    this.callback = callback;
    ...
    }
  3. 在您的桌面项目中,实现回调,如下所示

        public static void main(String[] arg) {
    final LwjglApplicationConfiguration config = new LwjglApplicationConfiguration();
    new LwjglApplication(new YourGame(new Callback() {
    @Override
    public void setForegroundFPS(int foregroundFPS) {
    config.foregroundFPS = foregroundFPS;
    }

    @Override
    public void setBackgroundFPS(int backgroundFPS) {
    config.backgroundFPS = backgroundFPS;
    }
    }), config);
    }
  4. 现在只需调用callback.setBackgroundFPS() 或callback.setForegroundFPS()

请注意,我忽略了 vSync,因为它已在以下位置可用:

    Gdx.graphics.setVSync(true);

关于java - 应用程序启动后如何更改 LwjglApplicationConfiguration,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36743333/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com