我正在開發一個2d的java遊戲,但我堅持定時器問題。這是我的遊戲循環:System.nanoTime問題()
void gameLoop(isRunning){
....
doStuff();
....
}
我有環內的FPS測量這樣的代碼:
long thisLoop = System.currentTimeMillis();
delta = thisLoop - lastLoopTime;
lastLoopTime = thisLoop;
所以我得到自去年環多少時間已經過去了。但是,每當我嘗試使用System.nanoTime()
,而不是System,currentTimeMillis()
這樣的:
long thisLoop = System.nanoTime();
delta = thisLoop - lastLoopTime;
lastLoopTime = thisLoop;
我的比賽變得完全擰,不呈現任何過去的第一幀,沒有報告的錯誤只是凍結。我贏了7 64最新的Java 1.6。什麼可能是錯的?
你正在做什麼'delta'或'lastLoopTime'?這可能是問題所在,但你沒有發佈該代碼。 – 2011-04-20 04:39:39
什麼操作系統和版本?另見[這個答案](http://stackoverflow.com/questions/4588605)。 – trashgod 2011-04-20 04:47:50