最近我开始了一个新的LibGDX项目。我非常习惯使用它。但是在这个项目中(以及我最近设置的每个新项目),卡顿很多。尽管FPS很好,但对象的移动却是卡顿的。我尝试打开和关闭垂直同步,但并没有什么帮助。为什么突然间会出现这种情况?我有什么遗漏吗?
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%存在。目前我正在使用最新版本1.9.10的LibGDX。另外,我上一次项目时硬件没有更改。