LIBGDX的Delta时间是多少?我读了很多关于这个的帖子.据我所知,达美时间是,
为了使游戏的速度保持不变,我们使用dt
如果我们说60*dt那么它将每秒移动60帧,无论移动速度如何(例如).
所以,这就是我对delta时间的了解,但是我没有得到关于它的清晰视图,因为对于更新或渲染方法,我们传递的是delta时间但是在我们指定的代码中我们计算PER SECOND的位置?
例如,
public void update(float dt)
{
float distance +=2*dt;
}
Run Code Online (Sandbox Code Playgroud)
这段代码会每秒移动2帧吗?如果是,那么下面的代码会做什么?
public void update(float dt)
{
....
}
public void render(float delta)
{
update(delta);
}
Run Code Online (Sandbox Code Playgroud)
所以,我需要答案,
我们在这个代码中指定它必须像上一个例子那样每秒移动x帧吗?
我可以理解render方法是将delta时间传递给update方法,但我需要一些清晰的视图.很抱歉,如果这个问题看起来很愚蠢,但实际上很难在不知道发生了什么的情况下继续进行.任何帮助都会很棒!
Xop*_*ppa 21
Gdx.graphics.getDeltaTime()是从前一个开始到当前调用开始之间的时间render().它也是您在Screen#render()方法中获得的价值.而已.没有黑魔法或什么的.它只需要当前时间并从中减去前一次.该值的单位是秒.请注意,它不会加起来一个.
因此,如果前一次调用该方法的时间是,6:51:30.0159512 pm并且当前调用它的时间是,6:51:30.0324858 pm那么差异就是0.0165346 seconds.
速度(速度)以每秒"单位"为单位测量,例如meter per second或短:m/s.如果您的汽车行驶360 m/s时间过去了0.0165346 s,那么您在此时间行驶的距离是0.0165346*360 s*m/s=> 5.952456 m,因此差不多有6米.
请注意,这是基本物理,它不是特定于libGDX.如果您觉得很难理解,那么您可能想要了解速度.
回答你的底层问题,我想这是关于将你的渲染方法拆分成一个单独的更新方法.