【问题标题】:Limiting Framerate on Canvas application限制 Canvas 应用程序的帧率
【发布时间】:2013-10-22 11:13:31
【问题描述】:

我已经构建了一个非常基础的平台“引擎”:
[删除小提琴]

当你用箭头键移动时 - 帧率是精神上的快!

我曾尝试使用以下方法限制帧速率:

var fps = 30;
var now;
var then = Date.now();
var interval = 1000/fps;
var delta;

然后在draw函数中:

now = Date.now();
delta = now - then;
if (delta > interval) {
    //redrawing scene here
    then = now - (delta % interval);
}

但不幸的是,这仍然具有相同的帧速率,但性能下降(就像跳帧而不是帧速率限制)。

请帮帮我! :(

I'll give you a cookie!

【问题讨论】:

  • 代码为什么要做什么?它所做的只是设置一些变量?
  • 为清晰起见已编辑...添加了评论

标签: javascript html canvas frame-rate


【解决方案1】:

你应该检查你的 GameLoop 函数,我想。就目前而言,您要求每秒 1000 帧。哎呀!

当我把它编辑成这个时,它给了我大约 33 fps。

    GameLoop: function() { //initialise game loop
        Game.Vars.GameLoop = setTimeout(function() { 
            requestAnimationFrame(Game.Functions.Update, Game.C); 
        }, 30);
    },

你把 30 写成 1.. :) 巧克力片,如果可以的话。如果没有,我会吃白巧克力和覆盆子!

编辑: 见鬼,你成功了! - 一定要喜欢那些为自己写的信息。 :D

【讨论】:

  • 可爱!谢谢 - 你是什么意思“消息”? * 给你一块巧克力饼干 *(编辑)哦,你是说那个老家伙说的吗?大声笑
  • 标称标称标称。我喜欢饼干。 - 过去(大约 IE4),我通常使用“Fire trUCK 词”而不是“错误”——虽然它确实有助于减轻因看到它而引起的挫败感,但向我的 uni 讲师解释并不是最有趣的。 :chuckle: - 哦,刚刚看到你的编辑。是的,确实如此。先看到代码,然后在放慢速度后,我得到了它的提示。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-25
相关资源
最近更新 更多