ShitEngine 1.4.2
基于 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 void ResetTotalTime() { GetInstance().m_totalTime = 0.0; }
28 static unsigned int GetTargetFPS() { return GetInstance().m_targetFPS; }
29 static void SetTargetFPS(unsigned int fps);
30
31 private:
32 friend class EngineContext;
33 Time();
34 ~Time();
35
36 void init();
37 void update();
38
39 float m_deltaTime = 0.0f;
40 double m_totalTime = 0.0f;
41 Uint64 m_lastTime = 0;
42 Uint64 m_currentTime = 0;
43 unsigned int m_targetFPS = 144;
44 };
45}
#define SHIT_API
定义 Core.h:14
引擎主控类
定义 Game.h:16
static void Init()
初始化计时器
定义 Time.h:23
Time(const Time &)=delete
Time(Time &&)=delete
Time & operator=(Time &&)=delete
static void ResetTotalTime()
总时长归零(进入运行态时调用,Unity 式每局从头计时)
定义 Time.h:27
static unsigned int GetTargetFPS()
目标帧率上限
定义 Time.h:28
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
friend class EngineContext
定义 Time.h:32
static void SetTargetFPS(unsigned int fps)
设帧率上限(0=不限)
定义 AnimationClip.h:12