C++ と SDL2 で単純なタイル ベースのプラットフォーマーを作ろうとしています。フレームレートは 59 ~ 60 fps のままですが、キーを押し続けると約 10 fps 低下します。これは、更新を呼び出したり、キーステートを取得したりしない場合でも発生します。これは私のゲームループ内のコードです:
//keys = (Uint8 *)SDL_GetKeyboardState(NULL);
elapsed = SDL_GetTicks() - current;
current += elapsed;
timeSinceSecond += elapsed;
//update(keys, elapsed / 1000.0);
draw();
frames++;
if(timeSinceSecond >= 1000) {
timeSinceSecond = 0;
cout << frames << endl;
frames = 0;
}
next = SDL_GetTicks();
if(next - current < 1000.0 / framerate) {
SDL_Delay(1000.0 / framerate - (next - current));
}
なぜこれが起こっているのかについてのアイデアはありますか? SDL2に問題があるのでしょうか?私はSDL 1.2でこれを試していません。