ShitEngine
基于 C++20 与 SDL3 的轻量级 2D 游戏引擎
载入中...
搜索中...
未找到
Time.h
浏览该文件的文档.
1#pragma once
2#include "Core.h"
3#include <SDL3/SDL_stdinc.h>
4
5namespace Shit {
6 class Game;
7
13 class SHIT_API Time {
14 friend class Game;
15 public:
16 Time(const Time&) = delete;
17 Time& operator=(const Time&) = delete;
18 Time(Time&&) = delete;
19 Time& operator=(Time&&) = delete;
20
21 // --- 静态API ---
22 static Time& GetInstance();
23 static void Init() { GetInstance().init(); }
24 static void Update() { GetInstance().update(); }
25 static float GetDeltaTime() { return GetInstance().m_deltaTime; }
26 static double GetTotalTime() { return GetInstance().m_totalTime; }
27 static unsigned int GetTargetFPS() { return GetInstance().m_targetFPS; }
28 static void SetTargetFPS(unsigned int fps) { GetInstance().m_targetFPS = fps; }
29
30 private:
31 Time();
32 ~Time();
33
34 void init();
35 void update();
36
37 float m_deltaTime = 0.0f;
38 double m_totalTime = 0.0f;
39 Uint64 m_lastTime;
40 Uint64 m_currentTime;
41 unsigned int m_targetFPS = 144;
42 };
43}
#define SHIT_API
定义 Core.h:12
引擎主控类
定义 Game.h:16
时间管理类
定义 Time.h:13
static void Init()
初始化计时器
定义 Time.h:23
Time(const Time &)=delete
Time(Time &&)=delete
Time & operator=(Time &&)=delete
static unsigned int GetTargetFPS()
目标帧率上限
定义 Time.h:27
static void Update()
每帧调用,更新 m_deltaTime
定义 Time.h:24
static Time & GetInstance()
static double GetTotalTime()
引擎启动至今的总时长(秒)
定义 Time.h:26
Time & operator=(const Time &)=delete
static float GetDeltaTime()
上一帧耗时(秒)
定义 Time.h:25
friend class Game
定义 Time.h:14
static void SetTargetFPS(unsigned int fps)
设帧率上限
定义 Time.h:28
定义 AudioPlayer.h:9