当我运行用libgdx编写的应用程序(以及使用libgdx的所有其他应用程序,甚至是来自谷歌市场的应用程序)时,它通常以25-30 FPS显示,默认情况下应为60 FPS。
有时它很好并以60 fps显示,但在我退出并再次进入应用程序或暂停/恢复后,它会以25-30 fps或60 fps随机显示。它只发生在我的Android设备上(桌面很好)2.3.6(三星Galaxy S Advance)当我在Ainol HERO 10上运行它时没有问题。
这是我为测试此问题而编写的代码:
public class FpsTest implements ApplicationListener{
OrthographicCamera cam;
ShapeRenderer shapeRenderer;
SpriteBatch batcher;
BitmapFont bf;
public void create() {
bf = new BitmapFont();
cam = new OrthographicCamera();
cam.setToOrtho(false, Gdx.graphics.getWidth()/4, Gdx.graphics.getHeight()/4);
batcher = new SpriteBatch();
batcher.setProjectionMatrix(cam.combined);
}
public void resize(int width, int height) {}
public void render() {
Gdx.gl.glClearColor(0,0.2f,0,1);
Gdx.gl.glClear(GL30.GL_COLOR_BUFFER_BIT);
batcher.begin();
bf.draw(batcher, "FPS: "+String.valueOf(Gdx.graphics.getFramesPerSecond()), 35, 120);
batcher.end();
}
public void pause() {}
public void resume() {}
public void dispose() {}
}
我还制作了一部关于我的问题的短片:https://www.youtube.com/watch?v=YjMr9fBYhHA&feature=youtu.be:)
答案 0 :(得分:0)
当official API documentation指出时,Gdx.graphics.getFramesPerSecond()
会返回平均值。
您无法依靠它来获得准确的帧率报告。请改用Gdx.graphics.getRawDeltaTime()
,然后将其计算为反向以将其转换为FPS。