我喜欢用C++和Java制作小游戏,但有些东西一直困扰着我,而且我从未完全理解如何补救它.
在C++和Java中休眠只能在几毫秒内完成.意思是,如果你这样做
startTime=clock();
-------Execute everything in that frame-----
endTime=clock();
sleep(x-(endTime-startTime));
Run Code Online (Sandbox Code Playgroud)
如果x为16,如果x为17,则每秒得到62.5帧,每秒得到58.8帧
这两者都不适合显示器的刷新率.
但是我注意到像Warframe这样的游戏会说"16.66 ms帧时间"意味着他们的引擎能以某种方式更精确地睡觉.
那你怎么得到完美的60?
最好是在C++中,因为我正在使用它,但是回答Java也会有所帮助