Java libGDX:如何正确地将屏幕加载到内存中?

Java libGDX:如何正确地将屏幕加载到内存中?,java,performance,memory,libgdx,Java,Performance,Memory,Libgdx,游戏开始时,我有一个启动/加载屏幕。首先,我使用加载我的资产,然后,我想将我的资产加载到内存中。目前,我就是这样做的: menuState = new MenuState(game); playState = new PlayState(game); gameOverState = new GameOverState(game); 现在我想用fadeIn和fadeOut动画显示菜单自定义。这很好,但此动画的进度基于当前的增量。在接下来的几个渲染调用中,我得到了如此高的增量,以至于根本没有可见的

游戏开始时,我有一个启动/加载屏幕。首先,我使用加载我的资产,然后,我想将我的资产加载到内存中。目前,我就是这样做的:

menuState = new MenuState(game);
playState = new PlayState(game);
gameOverState = new GameOverState(game);
现在我想用fadeIn和fadeOut动画显示菜单自定义。这很好,但此动画的进度基于当前的增量。在接下来的几个渲染调用中,我得到了如此高的增量,以至于根本没有可见的动画

我不明白,为什么不仅下一个渲染调用(加载所有这些状态需要时间,但加载完成后就没有什么可做了)还有下几个渲染调用都会有一个高增量


如何加载加载后delta较低的屏幕?

在考虑了
delta
的动画中,可以引入“最大”delta。这会有所帮助,这样您的动画就不会被跳过,但一开始可能会显得有点滞后

Stage.java的
LibGDX
源代码中使用了类似的方法

public void act () {
    act(Math.min(Gdx.graphics.getDeltaTime(), 1 / 30f));
}

public void act (float delta) {
    //does stuff
}
Math.min
将采用较小的值,即
deltaTime
1/30f
——以保证即使每个帧实际花费很长时间,它也会以较小的增量更新