我嘗試編寫自己的遊戲循環。但CPU使用率太高。這大概是25%。 我的問題可能是沒有Thread.sleep。但我不想用它,因爲它應該不是很準確。另外計算下一幀可能需要10毫秒。Java:遊戲循環 - CPU使用率過高
我的代碼是這樣做的:
1:重新繪製窗口(「芬斯特」是在德國窗口)
2:讀出毫秒
3:設置下一幀
我想有50 fps的。所以程序每幀需要等待1000/50 = 20毫秒。
4:計算的時間和設置下一幀
// GameSchleife
while (true) {
// First repaint
fenster.repaint();
// Before calculating the next frame, capture the time
long a = System.currentTimeMillis();
long b = a;
// Calculate the next frame
fenster.Update();
// Wait for 20 ms (50 frames in a second)
for (int time = 0; time < 20;) {
// Wait for at least 1 ms
while (a == b) {
a = System.currentTimeMillis();
}
// Difference from a and b
time = time + ((int) (a - b));
//
a = System.currentTimeMillis();
b = a;
}
}
那麼,什麼是你的題? – 2014-11-08 16:48:27