docs(runtime): trace original Control clock delivery
Docs Deploy / Build and Deploy MkDocs (push) Successful in 38s
Docs Deploy / Build and Deploy MkDocs (push) Successful in 38s
This commit is contained in:
3 files changed
+80
-7
No files matched your search
@@ -346,6 +346,23 @@ end-of-render callbacks. Эти callbacks позволяют объектам б
|
||||
изменит движение, камеру и сценарные таймеры. Подробности render item и рисков
|
||||
кадровой совместимости вынесены в справочник [Render frame](../reference/render-frame.md).
|
||||
|
||||
У исходного Control источник времени прослежен статически до World3D.
|
||||
World3D берёт миллисекунды `timeGetTime()`, учитывает игровое смещение и паузу,
|
||||
затем передаёт младшие 32 бита результата всем объектам в событии `6/1`.
|
||||
После этого следуют шаг мировой физики и второй обход объектов с событием
|
||||
`6/0x1c`; они получают то же значение часов. Поэтому порядок обновлений имеет
|
||||
значение даже тогда, когда все участники видят одинаковое время.
|
||||
|
||||
Объект AniMesh передаёт первое событие последовательно в Behavior, Wizard,
|
||||
CollObject, Control и PhysicalModel, пропуская отсутствующие интерфейсы, а затем
|
||||
ещё раз в CollObject с подсобытием `0x1c`. Control численно преобразует
|
||||
беззнаковые миллисекунды в `f32` и выбирает обработчик по классу объекта.
|
||||
Это абсолютные часы: длительность шага обработчик вычисляет из сохранённых
|
||||
значений сам. Таблицы, адреса и различие путей классов приведены в
|
||||
[техническом разборе](../appendices/script-vm.md#доставка-игровых-часов-в-control).
|
||||
Статическая цепочка ещё не доказывает исполнение активного Control update на
|
||||
миссии. Rust пока сохраняет начальные provider-снимки и не изменяет их этим путём.
|
||||
|
||||
## World3D
|
||||
|
||||
World3D связывает игровые объекты, события, время, ввод, камеру, сетевые
|
||||
|
||||
Reference in new issue
Block a user