C ++变量没有改变

时间:2013-02-27 23:57:10

标签: c++ variables sdl frame-rate zero

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

1 个答案:

答案 0 :(得分:1)

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