LibGDX-60FPS-帧速率下降和口吃
我对帧速率有个大问题。当我只画一个精灵,并试图移动它时,FPS低于400没有VSync我有滞后。这不是平稳的运动。当我使用VSync时,它几乎可以正常工作,但是每秒60 fps,每一帧的帧速率跳到~2000。当这种情况发生时,运动会结巴。同样,如果没有这种帧速率跳跃,运动会出现口吃,但比没有VSync时要少。当FPS>500时,一切正常。这不是因为硬件不好。我能用它做点什么吗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
@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的全部功能。。。特别是如果此人在笔记本电脑上玩。请给出一些代码;)它几乎是通过添加键和精灵处理生成的代码