我正在开发一个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