Я пишу небольшую игру с Libgdx.Render/Update Thread synchronization
У меня есть поток aRender [OpenGL], который вызывает вызовы render()
для всех объектов и Обновить поток, который продолжает звонить update(double delta)
по всем объектам.
Обновление потока происходит быстрее. Должен ли я попытаться использовать какую-то синхронизацию, чтобы поток обновления мог немного отдохнуть? Были ли какие-либо выгоды от этого?
Update
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 кадров в секунду. Таким образом, скорость обновления более чем достаточна.
Что вы подразумеваете под "самой удобной скоростью обновления"? Мое обновление работает так же быстро, как может быть выше минимального шага. Обновление woks с заданной дельтой, так что скорость монстра будет одинаковой? – jellyfication