目前我有一个抽象的GameClock类,它实现了runnable并调用了一个update方法,该方法使用定义的nano秒延迟来处理fps和更新。这是循环:
@Override
public void run() {
launch();
long nanoPrevious = System.nanoTime();
long nanoCurrent, nanoElapsed = 0;
while (running) {
nanoCurrent = System.nanoTime();
nanoElapsed += (nanoCurrent - nanoPrevious);
nanoPrevious = nanoCurrent;
while (nanoElapsed >= nanoSPU) {
update(); updates++;
nanoElapsed -= nanoSPU;
}
} finish();
}
我想知道这种方法是否有效滞后,以及我可以改进的方法,但最重要的是它如何分别处理fps和更新,以及如何在用户内部更改fps限制游戏的最小延迟类似于我的世界,你可以改变你的fps上限或将其设置为无限制。