我正在尝试创建一款具有独立帧速率的游戏,其中myObject以每毫秒一个单位的速度向右移动。但是,我不知道如何deltaTime在这段代码中计算:
var currentTime = 0;
var lastTime = 0;
var deltaTime = 0;
while( play ) {
// Retrieve the current time
currentTime = Time.now();
deltaTime = currentTime - lastTime;
lastTime = currentTime;
// Move myObject at the rate of one unit per millisecond
myObject.x += 1 * deltaTime;
}
Run Code Online (Sandbox Code Playgroud)
假设第一帧花了 30 毫秒,所以deltaTime应该是 30,但它是 0,因为我们只知道帧开始的时间而不是帧结束的时间。然后,在第二帧中花费了 40 毫秒,因此deltaTime是 30,因此myObject.x是 30。但是,经过的时间是 70 毫秒(第一帧中的 30 毫秒 + 第二帧中的 40 毫秒),因此myObject.x应该是 70,而不是 …