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が必要unsigned intですが、 を渡していますfloat)。その結果、合理的な動作を期待するべきではありません。

于 2013-02-28T00:02:55.773 に答える