猿问

canvas动画帧数与速度的关系

刚开始做canvas的游戏, 对动画帧数与速度的理解不太明白, 希望大家帮助下....

以简单的setInterval为例的动画, 以设定的FPS进行重绘, 并进行update和draw

var run = function(){
    update() {
        x += speed
    }
    
    draw()}setInterval(run, FPS)

这种情况下, 物体的移动速度其实和FPS也有关系, 因为每次interval就会计算x, (理论上是不是FPS不应该和物体的移动速度耦合在一起的? 因为帧数应该只负责刷新频率, 而不是移动频率). 
如果物体需要2秒才移动一次的话, 那是不是要再加一个timer的计时器,

update(){    timer++
    if (FPS * timer > 1000 * 2) {
        doUpdate()        timer = 0
    }
}

怎么能消除对FPS值的依赖, 因为如果用requestAnimationFrame, 好像都不需要获取FPS的值.

还有玩游戏的时候, 调快速度好像更多的是物体的移动间隔更短, 而不是移动的单位更大, 按这个理解的话, speed这个变量的控制好像就不太对了, 因为speed更像是移动的单位, 而非时间间隔

有人能解释下么, 谢谢


翻阅古今
浏览 1806回答 1
1回答

蛊毒传说

setInterval控制数据requestAnimationFrame画出来没明白你哪里没明白
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答