Переменные C ++ не меняются

у меня есть 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

Решение

Ваш код имеет неопределенное поведение, потому что ваш printf вызов имеет несовпадающий тип (%u требует unsigned int, но вы проходите в float). В результате вы не должны ожидать какого-либо разумного поведения.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]