私は、次のTimerクラスがあります。タイマークラスの速度係数を設定していますか?
class Timer
{
private:
unsigned int curr,prev;
float factor;
float delta;
public:
Timer(float FrameLockFactor)
{
factor = FrameLockFactor;
}
~Timer()
{
}
void Update()
{
curr = SDL_GetTicks();
delta = (curr - prev) * (1000.f/factor);
prev = curr;
}
float GetDelta()
{
return delta;
}
};
を、私はこのようにそれを使用します。
//Create a timer and lock at 60fps
Timer timer(60.0f);
while()
{
float delta;
float velocity = 4.0f;
timer.Update();
delta = timer.GetDelta();
sprite.SetPosition(sprite.GetVector() + Vector2(0.0,velocity * delta));
sprite.Draw();
}
しかし、大きな問題がある:私のゲームをすることになっているプログラムのためにあまりにも遅い実行します毎秒60フレームで実行され、同じテストコードが、フレームに依存しない動きを使用しないときに滑らかに動作するので、コードに問題があるはずです。
助けが必要ですか?
ありがとうございます。いくつかの研究の後、私は、フレームに依存しない代わりに、ゲームで固定フレームレートを持つことが本当に良いということを発見しました。 – user1010005