任何人都可以帮我解决问题吗?在游戏刷新和重绘的游戏循环中,有时变量“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();
}
}
答案 0 :(得分:0)
elapsed = System.nanoTime() - start; wait = targetTime - (elapsed / 1000000);
wait
不是System.nanotime()
的值;等待消极只是意味着targetTime - (elapsed / 1000000)
是否定的1000000
答案 1 :(得分:0)
经过的时间可能大于刷新间隔(targetTime)。在这种情况下,检查经过的时间是否为+ ve,然后仅休眠。