我正在尝试用 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 尝试过这个。