Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在JavaScript中创建稳定的自动机?_Javascript_Automata - Fatal编程技术网

如何在JavaScript中创建稳定的自动机?

如何在JavaScript中创建稳定的自动机?,javascript,automata,Javascript,Automata,我正在开发一个javascript游戏,我有一个自动系统控制游戏时间和精灵动画,并帮助路径查找系统计时等等。我的问题是在速度较慢的浏览器上,我用来计算时间的javascript循环不是很准确。它经常会跳来跳去。我想知道有没有办法强制循环以每秒30帧的速度持续运行 基本上,我需要一种方法来保持我的自动机循环以1/30秒的速度运行。你无法控制时间(阅读更多信息),但如果没有更多信息,恐怕我帮不了你更多。似乎使用set interval而不是setTimeout的自调用函数会大大加快速度。谢谢bobi

我正在开发一个javascript游戏,我有一个自动系统控制游戏时间和精灵动画,并帮助路径查找系统计时等等。我的问题是在速度较慢的浏览器上,我用来计算时间的javascript循环不是很准确。它经常会跳来跳去。我想知道有没有办法强制循环以每秒30帧的速度持续运行


基本上,我需要一种方法来保持我的自动机循环以1/30秒的速度运行。

你无法控制时间(阅读更多信息),但如果没有更多信息,恐怕我帮不了你更多。

似乎使用set interval而不是setTimeout的自调用函数会大大加快速度。谢谢bobince

你是说你需要它每隔1/30秒运行一次,如果它掉帧,它会等待1/15秒吗?或者你是说你需要一种准确的方法来确定时间,不管它运行的频率有多高?是的,感觉你在问两件不同的事情:如果你真的需要达到一致的30fps,那么你需要一种方法来确保每帧的所有处理都在<33秒内进行⅓ 毫秒。OTOH,如果您需要确保运动/动画以一致的速率完成,那么当处理变得太重时,您可以删除帧-正如tloflin所指出的,您只需要一种可靠的方法来测量经过的时间。到目前为止,您尝试了什么,它是如何失败的?一个“javascript循环来计算时间”听起来非常不祥。请告诉我们您在这里使用的是
setInterval
,而不是一些不可靠的忙循环,是吗?啊@bobince我一直在使用setTimeout在循环中重新执行函数。我忘了设定间隔。我现在就去清理。