我试图通过在render方法中将delta的值添加到我的浮点值来计算libgdx中的已用时间,浮点值是自播放状态开始以来我测量的时间.错误或问题,你想如何调用它,是通过我的计算,显示这样做的时间是实时的两倍.我试图除以2并且我非常接近实时,这意味着通过在每次渲染调用中添加delta我几秒钟内都无法获得实时.为什么会这样?
private float time=0;
public void render () {
time +=Gdx.graphics.getDeltaTime();
}
Run Code Online (Sandbox Code Playgroud)
上面没有得到实时,我的问题是为什么?编辑:我正在使用屏幕,但无所谓我尝试了Gdx.graphics.getDeltaTime()和渲染方法的delta参数.
Tom*_*zny 14
您可以使用包装器TimeUtils.
获取当前时间:
long startTime = TimeUtils.millis();
Run Code Online (Sandbox Code Playgroud)
从startTime开始经过的时间:
long elapsedTime = TimeUtils.timeSinceMillis(startTime);
Run Code Online (Sandbox Code Playgroud)
Chr*_*ker 13
LibGDX仍然是Java的核心,只需使用标准方法来获取时间.在应用程序使用开始时
startTime = System.currentTimeMillis();
Run Code Online (Sandbox Code Playgroud)
然后在渲染中你可以做到
System.out.println("Time elapsed in seconds = " + ((System.currentTimeMillis() - startTime) / 1000));
Run Code Online (Sandbox Code Playgroud)
确保将startTime声明为long.
至于为什么它没有使用你发布的方法,我不确定.
编辑:如果您的LibGDX项目未设置为以固定速率运行,则帧速率更改将导致Gdx.graphics.getDeltaTime()发生更改,因为更新的最后一帧返回增量时间.
| 归档时间: |
|
| 查看次数: |
14610 次 |
| 最近记录: |