LibGDX - 60FPS - 降低帧率和口吃

时间:2017-06-30 16:29:18

标签: libgdx lag frame-rate vsync

帧速率存在很大问题。当我只绘制1个精灵并尝试在没有VSync时FPS低于400时移动它我有滞后。这不是平稳运动。当我使用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);

}

}

仅生成具有一些键处理和精灵绘制线的代码。每秒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);}

编辑: 我发现,当它处于窗口模式时...它会在1秒钟内结束......但是当它全屏模式时,它只是每秒钟......(它是'#s; s' s连接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, 74

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

并且...当我将最大FPS设置为59或更小时......它不会断断续续......但是当它关​​闭视频工件时,你可以看到典型的vsync。

任何视频卡设置都无济于事。任何&#34;自适应vsync&#34;或者什么......当我从我的代码中删除所有内容并且只设置了黑屏时,问题就出现了......

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

0 个答案:

没有答案