我做了我的第一場比賽中爪哇 - 蛇, 它的主循環看起來像這樣Java的貪吃蛇遊戲,避免使用的Thread.sleep
while (true)
{
long start = System.nanoTime();
model.eUpdate();
if (model.hasElapsedCycle())
{
model.updateGame();
}
view.refresh();
long delta = (System.nanoTime() - start)/1000000L;
if (delta < model.getFrameTime())
{
try
{
Thread.sleep(model.getFrameTime() - delta);
} catch (Exception e)
{
e.printStackTrace();
}
}
}
但是,在我的項目的質量要求有一個響應點,所以我需要將線程睡眠改變成其他東西,但不知道如何以一種簡單的方式做到這一點。 在此先感謝您的任何建議。
我會使用一個['Timer'](https://docs.oracle.com/javase/7/docs/api/javax/swing/Timer.html)來調用幀率。 – ChiefTwoPencils
謝謝你的建議!我在我的項目中實現了Timer,它工作得非常完美,即使我昨天發現了固定的暫停錯誤:) – Azathanai
考慮將其轉化爲答案@chief –