我有一个Timer
类,但每当我尝试更改任何变量的值时,该变量只保持为零。 SDL_GetTicks()
返回它应该的值,但是当我尝试将该值赋给变量时,该变量保持为零。我尝试过编码的硬编码,变量仍然保持为零。我的Main
类中的变量工作正常,但是当我尝试更改其中的任何变量时,它都不起作用。此外,方法timeSinceCreation()
也返回零。
#include "Timer.h"
#include "SDL.h"
Timer::Timer() : m_timeOfLastCall(0.0f)
{
SDL_Init(SDL_INIT_TIMER);
}
Timer::~Timer() {}
float Timer::timeSinceCreation()
{
return SDL_GetTicks();
}
float Timer::timeSinceLastFrame()
{
float thisTime = timeSinceCreation();
float deltaTime = thisTime - m_timeOfLastCall;
m_timeOfLastCall = thisTime;
printf("%u ms \n", thisTime );
return deltaTime;
}
答案 0 :(得分:1)
您的代码有未定义的行为,因为您的printf
调用类型不匹配(%u
需要unsigned int
,但您传递的是float
)。因此,您不应期待任何合理的行为。