有人能帮我解决我的问题吗?在我用于游戏刷新和重绘的游戏循环中,有时变量"wait“会返回负值。这怎么可能呢?
while(running) {
start = System.nanoTime();
update();
draw();
drawToScreen();
elapsed = System.nanoTime() - start;
wait = targetTime - (elapsed / 1000000);
try {
System.out.println(wait);
Thread.sleep(wait);
} catch (Exception e) {
e.printStackTrace();
}
}发布于 2015-02-13 07:45:37
elapsed = System.nanoTime() - 开始;等待 = 目标时间 - (经过 / 1000000);
wait 不是 System.nanotime() 的值;等待为负仅意味着 targetTime - (elapsed / 1000000) 为负 1000000发布于 2015-02-13 10:02:59
经过的时间可能大于刷新间隔(targetTime)。在这种情况下,检查已用时间是否为+ve,并仅在此时休眠。
https://stackoverflow.com/questions/28489855
复制相似问题