我正在用 Libgdx 写一个小游戏。
我有一个不断调用所有对象的 Render[OpenGL] 线程和一个不断调用render()
所有对象的更新线程update(double delta)
。
更新线程的循环速度更快。我应该尝试使用某种同步,以便更新线程可以休息一下吗?会有什么好处吗?
更新
public void run() {
while(true){
nano = System.nanoTime();
long delta = nano - timestamp;
timestamp = nano;
accumulator+=(double)delta/BILION;
while(accumulator >= step){
update(step);
accumulator-=step;
}
long loc = (long) ((step -accumulator)*1000)+1;
try {
Thread.sleep(loc);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
我不知道它是否有问题,但我当前的更新是 2500-20000 fps。所以更新速度绰绰有余。