LibGDX-60FPS-帧速率下降和口吃

LibGDX-60FPS-帧速率下降和口吃,libgdx,lag,frame-rate,vsync,Libgdx,Lag,Frame Rate,Vsync,我对帧速率有个大问题。当我只画一个精灵,并试图移动它时,FPS低于400没有VSync我有滞后。这不是平稳的运动。当我使用VSync时,它几乎可以正常工作,但是每秒60 fps,每一帧的帧速率跳到~2000。当这种情况发生时,运动会结巴。同样,如果没有这种帧速率跳跃,运动会出现口吃,但比没有VSync时要少。当FPS>500时,一切正常。这不是因为硬件不好。我能用它做点什么吗 @Override public void create () { batch = new SpriteBatc

我对帧速率有个大问题。当我只画一个精灵,并试图移动它时,FPS低于400没有VSync我有滞后。这不是平稳的运动。当我使用VSync时,它几乎可以正常工作,但是每秒60 fps,每一帧的帧速率跳到~2000。当这种情况发生时,运动会结巴。同样,如果没有这种帧速率跳跃,运动会出现口吃,但比没有VSync时要少。当FPS>500时,一切正常。这不是因为硬件不好。我能用它做点什么吗

@Override
public void create () {
    batch = new SpriteBatch();
    img = new Texture("badlogic.jpg");
    img.setFilter(TextureFilter.Nearest, TextureFilter.Nearest);

    font = new BitmapFont();

    player = new Sprite(img);
    x = 100;
    y=100;
    player.setPosition(x, y);

    //camera = new OrthographicCamera(640, 480);
    //multiGame = new MultiGame();
    //multiGame.create();


    //camera.position.set(camera.viewportWidth / 2f, camera.viewportHeight / 2f, 0);
    //camera.update();


}

@Override
public void render () 
{

    Gdx.gl.glClearColor(1, 0, 0, 1);
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

    update();

    batch.begin();
    font.draw(batch, "" + (int)(1/time), 600, 450);
    player.draw(batch);
    batch.end();
}

private void update()
{
    time = Gdx.graphics.getDeltaTime();
    if(Gdx.input.isKeyPressed(Keys.D))
    {
        x+=100 * time;
    }
    if(Gdx.input.isKeyPressed(Keys.D))
    {
        x-=60 * time;
    }

    player.setPosition(x, y);

}
}

仅生成带有一些关键帧处理和sprite绘图行的代码。每秒1帧的FPS增长到2000帧。。。雪碧口吃

它是桌面启动器:

public static void main (String[] arg) {
LwjglApplicationConfiguration config = new LwjglApplicationConfiguration();
config.vSyncEnabled = true;
config.foregroundFPS=60;
config.backgroundFPS=60;
new LwjglApplication(new IndustrialServer(), config);}
编辑: 我发现当它处于窗口模式时。。。它结结巴巴地说。。。在一秒钟内多次。。。但是当它处于全屏模式时,只有每秒。。。(它与跳转fps连接,因为当应用程序在窗口模式下工作时…它会在没有跳转fps的情况下出现口吃…:/)

当应用程序运行30秒(fps<40或>70)时,我重复了这个fps: 742, 104, 19, 1749, 39, 132, 76, 76, 77, 26, 878, 84, 39, 118, 89, 91, 112, 105, 39, 133, 37, 149, 37, 159, 33, 331, 37, 148, 35, 195, 36, 185, 2. 3. 2848, 74, 七十四

我还发现,系统中的每一个动作、过程的变化和过程频率的变化(因为它在2000MHz和3200MHz之间振荡)都会产生FPS跳变(在3到12000之间!!!)

而且。。。当我将最大FPS设置为59或更小时。。。不是口吃而是。。。当vsync关闭视频工件时,您可以看到它的典型特性

任何视频卡设置都没有帮助。任何“自适应vsync”之类的。。。问题还在于,当我从代码中删除所有内容时,只设置了黑屏


我真的不想在有人玩游戏时一直使用CPU和GPU的全部功能。。。特别是如果此人在笔记本电脑上玩。

请给出一些代码;)它几乎是通过添加键和精灵处理生成的代码