私はLibgdxで小さなゲームを書いています。
すべてのオブジェクトを呼び出し続けるRender[OpenGL]スレッドとrender()
、すべてのオブジェクトを呼び出し続けるUpdateスレッドが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〜20000fpsです。したがって、更新速度は十分すぎるほどです。