.. _program_listing_file_PrismEngine_src_timeResource.h: Program Listing for File timeResource.h ======================================= |exhale_lsh| :ref:`Return to documentation for file ` (``PrismEngine/src/timeResource.h``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #pragma once #include namespace prism { namespace scene { struct TimeResource { // === Масштабируемое время (игровое) === double_t deltaTime = 0.0; double_t time = 0.0; // === Немасштабируемое время (реальное) === double_t unscaledDeltaTime = 0.0; double_t unscaledTime = 0.0; double timeScale = 1.0; // === Методы управления === void update(double_t rawDeltaTime) { unscaledDeltaTime = rawDeltaTime; unscaledTime += rawDeltaTime; deltaTime = rawDeltaTime * timeScale; time += deltaTime; } void setScale(double scale) { timeScale = scale; } void pause() { timeScale = 0.0; } void resume() { timeScale = 1.0; } void togglePause() { timeScale = (timeScale == 0.0) ? 1.0 : 0.0; } bool isPaused() const { return timeScale == 0.0; } void reset(bool keepScale = true) { time = 0.0; unscaledTime = 0.0; if (!keepScale) { timeScale = 1.0; } } }; } }