gpt4 book ai didi

java - LibGDX 游戏突然卡顿了?

转载 作者:行者123 更新时间:2023-12-05 07:15:51 24 4
gpt4 key购买 nike

我最近重新开始了一个新的 LibGDX 项目。我非常习惯使用它。但是对于这个项目(以及我最近建立的每个新项目)来说,结结巴巴很多。尽管 FPS 很好,但物体的移动却很卡顿。我尝试打开和关闭 vsync,但没有太大帮助。怎么可能一下子就变成这样了?我错过了什么吗?

public class Run {
public static void main(String[] args) {
var config = new LwjglApplicationConfiguration();
config.title = "MyGame";
config.width = 1280;
config.height = 800;

new LwjglApplication(new MyGame(), config);
}
}

public class MyGame extends Game {

public void create() {
this.setScreen(new MainScreen());
}

public void dispose() {

}
}

public class MainScreen extends ScreenAdapter {

private BitmapFont font = new BitmapFont();
private SpriteBatch batch = new SpriteBatch();

private OrthographicCamera camera = new OrthographicCamera();
private FitViewport viewport = new FitViewport(1280, 800, camera);

private Sprite sprite = new Sprite(new Texture(Gdx.files.internal("some sprite")));

public void show() {
batch.setColor(Color.WHITE);
}

public void render(float delta) {
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

if(Gdx.input.isKeyPressed(Input.Keys.D)) {
sprite.setX(sprite.getX() + 150 * Gdx.graphics.getDeltaTime());
}
if(Gdx.input.isKeyPressed(Input.Keys.A)) {
sprite.setX(sprite.getX() - 150 * Gdx.graphics.getDeltaTime());
}

viewport.apply();
batch.setProjectionMatrix(camera.projection);
batch.begin();
font.draw(batch, "Hello LibGDX!", 100f, 100f);
sprite.draw(batch);
batch.end();
}

public void resize(int width, int height) {
viewport.update(width, height);
}

public void dispose() {
font.dispose();
batch.dispose();
}
}

这是我设置的最基本的项目,用于确认 100% 的时间存在卡顿。目前我正在使用最新版本的 LibGDX 1.9.10。顺便说一句,自从我完成上一个项目以来,我的硬件没有改变。

最佳答案

float getDeltaTime() 

此值是“平滑”的或在多个帧上取平均值,因此它无法正确显示自上一帧以来实际耗时,因此 x 增量与帧增量并不真正匹配。

float getRawDeltaTime()

这确实显示了最后一帧的增量并且会消除卡顿。

关于java - LibGDX 游戏突然卡顿了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59455854/

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