所以目前我有一个弹跳物体的动画,它每秒播放 20 次
1000/50 = 20 times a second
代码如下,可以假设所有变量都已正确初始化
var animation = setInterval(function () {
currentFrame++;
if (speedX <= 0.0) {
clearInterval(animation);
}
speedX -= 0.03;
speedY = (speedY + Math.sqrt((2 * currentFrame) / gravityPull));
yPosition += speedY;
if (yPosition > groundY) {
speedY *= -1;
yPosition = groundY;
}
xPosition += speedX;
$("#box").offset({ top: yPosition, left: xPosition });
}, 50);
这在 IE 中创造了非常低的性能,尽管 Chrome 似乎完全可以运行此代码。事实上,它太糟糕了,它会减慢计算机的大部分速度。
这里有什么问题吗?看起来计算相当简单......帧速率不是很高,每秒 20 帧并不极端,但对于不那么波折的动画来说仍然足够流畅。