RANDOM_RUST_DEV Telegram 232
Занимался сегодня рефакторингом небольшого крейта gametime.
Сделал чистку всех предупреждений с clippy::pedantic и задокументировал всё, хоть и минимально.

В крейте функционал для работы со временем в играх.
И минимум сложностей.

Во первых TimeStamp - точка во времени с наносекундной точностью. Относительно чего-то. Обычно относительно того, откуда они берутся.

TimeSpan - промежуток между меньшим и большим TimeStampами. Почти как Duration, но лишь u64 наносекунд.

Clock - часы. Связывают монотонный таймер core::time::Instant и TimeStampы. Генерирует ClockStep, на каждый вызов Clock::step, где есть текущий TimeStamp и TimeSpan между текущим и предыдущим.
Предполагается использовать Clock в главном цикле, делать Clock::step в начале каждой итерации и раздавать ClockStep везде, где нужно знать время.

GlobalClock - как Clock, но используют единую для процесса точку отсчета. Требуется std и global_reference фича

ClockRate - часы со скоростью. Использует внешний источник TimeSpan, генерирует ClockStep с указанной относительной скоростью. Без накапливаемой потери точности.
Удобно для контроля времени в симуляции. Паузы, буллет таймы, перемотки. Просто вся симуляция должна использовать ClockStep из ClockRate, а не общего Clock.

FrequencyTicker - генератор тиков с заданной частотой. Использует внешний TimeSpan и возвращает итератор по ClockStep тиков, произошедших в течение этого времени. Без накапливаемой потери точности.

Ознакомиться с кодом можно здесь.
https://github.com/zakarumych/gametime



tgoop.com/random_rust_dev/232
Create:
Last Update:

Занимался сегодня рефакторингом небольшого крейта gametime.
Сделал чистку всех предупреждений с clippy::pedantic и задокументировал всё, хоть и минимально.

В крейте функционал для работы со временем в играх.
И минимум сложностей.

Во первых TimeStamp - точка во времени с наносекундной точностью. Относительно чего-то. Обычно относительно того, откуда они берутся.

TimeSpan - промежуток между меньшим и большим TimeStampами. Почти как Duration, но лишь u64 наносекунд.

Clock - часы. Связывают монотонный таймер core::time::Instant и TimeStampы. Генерирует ClockStep, на каждый вызов Clock::step, где есть текущий TimeStamp и TimeSpan между текущим и предыдущим.
Предполагается использовать Clock в главном цикле, делать Clock::step в начале каждой итерации и раздавать ClockStep везде, где нужно знать время.

GlobalClock - как Clock, но используют единую для процесса точку отсчета. Требуется std и global_reference фича

ClockRate - часы со скоростью. Использует внешний источник TimeSpan, генерирует ClockStep с указанной относительной скоростью. Без накапливаемой потери точности.
Удобно для контроля времени в симуляции. Паузы, буллет таймы, перемотки. Просто вся симуляция должна использовать ClockStep из ClockRate, а не общего Clock.

FrequencyTicker - генератор тиков с заданной частотой. Использует внешний TimeSpan и возвращает итератор по ClockStep тиков, произошедших в течение этого времени. Без накапливаемой потери точности.

Ознакомиться с кодом можно здесь.
https://github.com/zakarumych/gametime

BY Random Rust Dev




Share with your friend now:
tgoop.com/random_rust_dev/232

View MORE
Open in Telegram


Telegram News

Date: |

In 2018, Telegram’s audience reached 200 million people, with 500,000 new users joining the messenger every day. It was launched for iOS on 14 August 2013 and Android on 20 October 2013. 4How to customize a Telegram channel? In the “Bear Market Screaming Therapy Group” on Telegram, members are only allowed to post voice notes of themselves screaming. Anything else will result in an instant ban from the group, which currently has about 75 members. Read now A new window will come up. Enter your channel name and bio. (See the character limits above.) Click “Create.”
from us


Telegram Random Rust Dev
FROM American