如果我不知道每秒有多少次运行,那么如何获得相同的输出?

企鹅

所以我有一个变量attemptedFPS这是我的循环每秒运行多少次。

循环示例:

setInterval(console.log, 1000/attemptedFPS, "Hello World");

因此,例如,如果将attemptedFPS设置为50,则该循环将每20毫秒运行一次(总计为50 /秒)。

我的问题是无论attemptedFPS设置为什么都具有相同的输出我想一个变量添加speedx每秒。(即,如果speed设置为10,则表示x每秒加10 )。

因此,如果在该循环中,我有:

setInterval(function(){
  x += speed;
}, 1000/attemptedFPS);

当然,现在根据会产生不同的结果attemptedFPS

不管是多少speedx每秒增加的等式attemptedFPS是什么?我应该添加x什么?

卡西米尔水晶
  • 添加speedx通过每一秒。
  • 无论函数执行多少次(也就是每秒执行一次)。

这可能是一个基本的数学问题。答案很简单:

speed变量分为attemptedFPS几部分。

因为它将被添加回您的循环中。

为了进行测试,此循环将运行1000/attemptedFPS时间,无论您将其设置attemptedFPS为什么,结果始终为x += speed(示例为10)。

for (let i = 0; i < 1000; i += 1000/attemptedFPS) {
  x += speed / attemptedFPS;
}

// result: 9.999999999999996;

但是正如您所看到的,它应该是10正确的。这是因为JavaScript中的浮点精度问题。我建议Number.toPrecision())处理此问题,但是应该可以。

for (let i = 0; i < 1000; i += 1000/attemptedFPS) {
  x += speed / attemptedFPS;
  x = +parseFloat(x.toPrecision(12));
}

// result: 10;

因此,请回答您的问题:

setInterval(function(){
  x += speed / attemptedFPS;
  x = +parseFloat(x.toPrecision(12));
}, 1000/attemptedFPS);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如果我不知道深度是多少,如何在 Javascript 中动态处理嵌套对象?

来自分类Dev

我不知道如何获得正确的输出(初学者程序员)

来自分类Dev

如果不知道游戏的目标输出,我将如何找到神经网络的成本?

来自分类Dev

如果我不知道每个列表中有多少个数字,如何将给定数量的数字列表作为输入?

来自分类Dev

如果我不知道他们的ID,如何检查选中了多少个复选框

来自分类Dev

如果我不知道其ID如何选择元素

来自分类Dev

如果我不知道文本长度,如何使用varbinary

来自分类Dev

如果我事先不知道所有的类,如何实现双重调度?

来自分类Dev

如果我不知道它会有什么URL,如何共享应用程序的链接

来自分类Dev

如果我不知道加密方法和参数,加密强度是多少?

来自分类Dev

不知道如何获得敌人的健康

来自分类Dev

phpstorm不知道如何运行Wordpress

来自分类Dev

我的Paint方法运行两次,我不知道为什么。我该如何解决这个问题,有人知道为什么会这样吗?

来自分类Dev

我的Paint方法运行两次,我不知道为什么。我该如何解决这个问题,有人知道为什么会这样吗?

来自分类Dev

如何对 Array[Array[Int]] 进行排序,假设内部数组具有相同的大小,但我们不知道

来自分类Dev

我可以知道组件在vue中有多少次mount()吗?

来自分类Dev

使用XStream读取XML进行对象处理时,如果我不知道XML将具有多少个字段怎么办?

来自分类Dev

不知道会有多少项时如何初始化数组

来自分类Dev

如何在不知道有多少项的情况下使用foreach遍历多维数组?

来自分类Dev

我的 JavaScript 没有在 CodePen 中运行,我不知道这是否是我的代码的错误

来自分类Dev

不知道有多少参数时的预准备语句

来自分类Dev

如果一张地图只有一个成员,如果你不知道密钥,如何在不循环的情况下获得它?

来自分类Dev

Android - 如何(以编程方式)知道电话响了多少次?

来自分类Dev

我不知道如何在文本之前获得此文本

来自分类Dev

不知道我是否正确获得Description属性

来自分类Dev

当我不知道其中有多少个文本框时,应该如何处理多个文本框?

来自分类Dev

我不知道如何打开这两个 Json 列表并打印其中的输出

来自分类Dev

我想创建一个输出,但不知道如何

来自分类Dev

如果我不知道旧密码,该如何更改密码?

Related 相关文章

  1. 1

    如果我不知道深度是多少,如何在 Javascript 中动态处理嵌套对象?

  2. 2

    我不知道如何获得正确的输出(初学者程序员)

  3. 3

    如果不知道游戏的目标输出,我将如何找到神经网络的成本?

  4. 4

    如果我不知道每个列表中有多少个数字,如何将给定数量的数字列表作为输入?

  5. 5

    如果我不知道他们的ID,如何检查选中了多少个复选框

  6. 6

    如果我不知道其ID如何选择元素

  7. 7

    如果我不知道文本长度,如何使用varbinary

  8. 8

    如果我事先不知道所有的类,如何实现双重调度?

  9. 9

    如果我不知道它会有什么URL,如何共享应用程序的链接

  10. 10

    如果我不知道加密方法和参数,加密强度是多少?

  11. 11

    不知道如何获得敌人的健康

  12. 12

    phpstorm不知道如何运行Wordpress

  13. 13

    我的Paint方法运行两次,我不知道为什么。我该如何解决这个问题,有人知道为什么会这样吗?

  14. 14

    我的Paint方法运行两次,我不知道为什么。我该如何解决这个问题,有人知道为什么会这样吗?

  15. 15

    如何对 Array[Array[Int]] 进行排序,假设内部数组具有相同的大小,但我们不知道

  16. 16

    我可以知道组件在vue中有多少次mount()吗?

  17. 17

    使用XStream读取XML进行对象处理时,如果我不知道XML将具有多少个字段怎么办?

  18. 18

    不知道会有多少项时如何初始化数组

  19. 19

    如何在不知道有多少项的情况下使用foreach遍历多维数组?

  20. 20

    我的 JavaScript 没有在 CodePen 中运行,我不知道这是否是我的代码的错误

  21. 21

    不知道有多少参数时的预准备语句

  22. 22

    如果一张地图只有一个成员,如果你不知道密钥,如何在不循环的情况下获得它?

  23. 23

    Android - 如何(以编程方式)知道电话响了多少次?

  24. 24

    我不知道如何在文本之前获得此文本

  25. 25

    不知道我是否正确获得Description属性

  26. 26

    当我不知道其中有多少个文本框时,应该如何处理多个文本框?

  27. 27

    我不知道如何打开这两个 Json 列表并打印其中的输出

  28. 28

    我想创建一个输出,但不知道如何

  29. 29

    如果我不知道旧密码,该如何更改密码?

热门标签

归档