2026-03-01 12:16:08 +08:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
class Timer
|
|
|
|
|
{
|
|
|
|
|
private:
|
|
|
|
|
static const int MAX_TICKS_PER_UPDATE = 10;
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
float ticksPerSecond;
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
double lastTime;
|
|
|
|
|
public:
|
|
|
|
|
int ticks;
|
|
|
|
|
float a;
|
|
|
|
|
float timeScale;
|
|
|
|
|
float passedTime;
|
|
|
|
|
|
|
|
|
|
private:
|
2026-03-02 17:39:35 +07:00
|
|
|
__int64 lastMs;
|
|
|
|
|
__int64 lastMsSysTime;
|
|
|
|
|
__int64 accumMs;
|
2026-03-01 12:16:08 +08:00
|
|
|
|
|
|
|
|
double adjustTime;
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
Timer(float ticksPerSecond);
|
|
|
|
|
void advanceTime();
|
|
|
|
|
void advanceTimeQuickly();
|
|
|
|
|
void skipTime();
|
|
|
|
|
};
|