为什么有时使用基于传递的时间量的步骤来完成动画?

num*_*l25 5 flash animation actionscript actionscript-2 actionscript-3

我注意到一些程序员根据时间的不同动画对象.我不确定为什么,即使这是合乎逻辑的.有谁知道这个意义吗?

下面是一段代码,解释了我的意思:

var timePassed:int = getTimer()-lastTime;
lastTime += timePassed;
var newBallX = ball.x + ballDX*timePassed;
var newBallY = ball.y + ballDY*timePassed;
Run Code Online (Sandbox Code Playgroud)

Joh*_*lla 16

当您根据时间制作动画时,您可以使自己独立于帧速率.无论经过了多少帧,你的球都会在给定的时间内移动相同的距离.将其与帧速率进行比较,帧速率取决于许多变量,例如可用于执行动画的处理能力.

这是一个常见的游戏物理问题 - 查看Glenn Fiedler出色的"Fix Your Timestep!" 文章对此有更详细的看法.(正确的做法比将方向向量乘以时间步长稍微复杂一些.)