0

我有一个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;
}
4

1 回答 1

1

您的代码具有未定义的行为,因为您的printf调用具有不匹配的类型(%u需要 a unsigned int,但您正在传递 a float)。因此,您不应期待任何合理的行为。

于 2013-02-28T00:02:55.773 回答