Реактивная (Rx) дельта синхронизация и обновление настолько быстро, насколько позволяют ресурсы - PullRequest
0 голосов
/ 29 июня 2018

Итак, я создаю игру, и я хочу применять физику как можно чаще, используя Rx с .NET.

В обычной игре с большим циклом я бы делал это, используя секундомер для измерения прошедшего времени между циклами.

Затем я бы использовал это истекшее время для расчета физики.

Как бы я создал что-то с помощью Reactive, чтобы обновлять физику как можно чаще? Если вычислительная нагрузка увеличивается, я хочу, чтобы физический расчет просто использовал большие шаги между обновлениями. Я думал об этом

 Observable.Interval(new TimeSpan(0, 0, 0, 32)).Subscribe(x =>
 {
    //Apply physics code.
 });

Проблема в том, что если нагрузка падает ниже 30 кадров в секунду, эти события отстают и начинают складываться, все еще пытаясь выполнить вычисления со скоростью 30 кадров в секунду.

Реально ли то, что я пытаюсь сделать? Я заранее извиняюсь, если это глупый вопрос, я новичок в Reactive, поэтому я не уверен, предназначена ли одна из многих доступных функций для этой цели.

...