Android上游戏开发中与帧无关的动画

时间:2014-08-12 21:10:05

标签: android animation frame

好的,所以delta-time是1 / fps吧?假设fps为50,则delta时间等于1/50 = 0.02。我的问题是帧率变化(一秒可能是50,另一个可能是52)。所以说一秒fps是50,这意味着delta时间将等于0.02,但是NEXT秒fps将是52,但我们还不知道。所以我们的动画正在以1/50的delta时间进行,但fps实际上是52.直到下一秒结束,我们才知道fps已经改变了。如果变化很小,这似乎不是什么大问题,但如果它们变得非常大,那么我们就会遇到问题。所以我们总是根据之前的第二个fps进行计算。我想知道如何解决这个问题。谢谢!

1 个答案:

答案 0 :(得分:0)

1 / fps = delta-time你是对的。但是,目前还不知道fps,正如你所指出的那样,这会导致问题!在实践中,重新安排公式使得1 / dt = fps。

因此,我们通过确定自上次更新以来经过了多长时间来确定增量时间(deltaTime =(CurrentTime - LastTime))。如果我们有一个变量,我们为每个更新添加增量时间(例如,deltaCounter + = deltaTime),另一个变量是一个计数器,我们在每个更新中添加一个(Counter ++),我们会看到当deltaCounter变为等于1,Counter变量是我们fps的第二个。

Further Reading on Delta Time and its Implementation