【发布时间】:2010-04-19 09:10:57
【问题描述】:
function(deltaTime) {
x = x * FACTOR; // FACTOR = 0.9
}
这个函数在游戏循环中被调用。首先假设它以恒定的 30 FPS 运行,因此deltaTime 始终为 1/30。
现在游戏发生了变化,所以deltaTime 并不总是 1/30,而是可变的。如何将deltaTime 纳入x 的计算中以保持“每秒效果”相同?
然后呢
function(deltaTime) {
x += (target - x) * FACTOR; // FACTOR = 0.2
}
【问题讨论】:
-
什么编程语言、环境等?
-
对于第二个问题,您使用变量 delta = target - x。然后更新函数变为 delta = delta * (1 - FACTOR),您已经知道要解决这个问题。给定 delta 你总是可以得到 x = target - delta。
标签: math multiplication exponential