저는 Timer
클래스를 가지고 있지만, 변수의 값을 변경하려고 할 때마다 변수는 0으로 유지됩니다. SDL_GetTicks()
은 예상되는 값을 반환하지만 해당 값을 변수에 할당하려고하면 해당 변수는 0으로 유지됩니다. 숫자로 하드 코딩을 시도했지만 변수는 여전히 0으로 유지됩니다. 내 Main
클래스의 변수는 정상적으로 작동하지만,이 중 하나를 변경하려고 시도하면 작동하지 않습니다. 또한 timeSinceCreation()
메서드는 0을 반환합니다. 당신의 printf
통화가 일치하지 않는 유형이 있기 때문에C++ 변수가 변경되지 않습니다
#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;
}
출력이 잘못되었을 수 있습니까? 'printf ("%. 8e ms \ n");'를 시도하거나 'stdio'형식 문자열에 대한 문서를보십시오. –
귀하의 진술이 혼란스러워 보입니다. 'SDL_GetTicks()'가 올바른 값을 반환하고'timeSinceCreation()'이 0을 반환한다고 말합니다. – Mahesh