我正在用Libgdx編寫一個小遊戲。渲染/更新線程同步
我有一個保持在所有對象上調用render()
的aRender [OpenGL]線程和一個在所有對象上始終調用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。所以更新速度綽綽有餘。
「最易於用戶使用的更新速度」是什麼意思?我的更新運行速度儘可能高於最小步驟。更新炒鍋給定的三角洲,所以怪物的速度會是一樣的? – jellyfication 2012-04-18 14:41:25