@Override
public void create() {
batch = new SpriteBatch();
img = new Texture("badlogic.jpg");
}
@Override
public void render() {
Gdx.gl.glClearColor(0, 0, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
if (x < 0 || x > 400) {
speed = -speed;
}
x += speed * Gdx.graphics.getDeltaTime() * 60;
Gdx.app.log("delta",Gdx.graphics.getDeltaTime()+"");
batch.begin();
batch.draw(img, x, 0);
batch.end();
}
我遇到了问题,我创建了一个新项目。问题libgdx试图保持60FPS和avarage deltatime是~16ms。一些渲染需要+ 20ms然后下一次渲染需要12ms(render1 + render2 = 32ms)才能达到60FPS。这让游戏变得迟钝。正如你所看到的,我在项目中没有任何东西,而且在桌面启动时也是如此。你是怎么解决的?
注意:我也尝试过reqeustRendering。但是如果渲染比平均花费更多的时间则是同样的事情。如果小于16ms,我还试着等待渲染。它也没有帮助。它没有任何GC问题。我使用Libgdx 1.6.4。
答案 0 :(得分:1)
删除该行
Gdx.app.log("delta",Gdx.graphics.getDeltaTime()+"");
因为这会将输出写入日志,这会大大减慢渲染循环速度。