Java:wait()将fps限制为64

Jan*_*rak 1 java frame-rate synchronized limit wait

我在主循环的代码中有这个(窗口中的2D游戏):

try{
  synchronized(this){

    wait(3);
  }
}
catch(Exception ex) {
  System.out.println(ex);
}
Run Code Online (Sandbox Code Playgroud)

这段代码导致FPS上限为64,我不知道为什么.我不使用任何其他同步块.有趣的是,当Web浏览器打开时,fps不再受限制.谁能告诉我如何摆脱64 fps的限制?我没有设法找到这个问题的任何其他主题.

编辑:

  • 没有等待(3); - 180fps.
  • 随着wait(3)和浏览器(Opera)打开--~113 fps.
  • 等待(3),没有浏览器 - 64 fps.

浏览器怎么能改变fps?

Old*_*eon 5

虽然参数的分辨率wait,并sleep以毫秒为单位,你将几乎肯定从来没有得到确切您所请求的延迟.

在Windows系统上,分辨率大约为15毫秒,给出1000/15 = 66fps