我的游戏计时器有一个有趣但奇怪的问题。似乎毫秒工作得很好。但是,当我尝试应用std::chrono::seconds
演员表时,我突然0.000000
在转换为浮点数时得到了。
我的计时器如下:
#include <iostream>
#include <time.h>
#include <chrono>
class Timer
{
public:
typedef std::chrono::high_resolution_clock Time;
typedef std::chrono::milliseconds ms; //<--If changed to seconds, I get 0.00000
typedef std::chrono::duration<float> fsec;
std::chrono::high_resolution_clock::time_point m_timestamp;
float currentElapsed;
Timer()
{
m_timestamp = Time::now();
}
float getTimeElapsed()
{
return currentElapsed;
}
void Tick()
{
currentElapsed = std::chrono::duration_cast<ms>(Time::now() - m_timestamp).count();
m_timestamp = Time::now();
}
public:
//Singleton stuff
static Timer* Instance();
static void Create();
};
计时器每帧打勾一次。因此,例如,我通常每帧大约 33 毫秒。33ms / 1000 = 0.033s
秒,所以应该有足够的空间来容纳它。
关于可能发生的事情的任何想法?
任何帮助是极大的赞赏!
编辑:对不起,秒,而不是毫秒