SDL 2.0 Tastenwiederholung und Verzögerung

Ich habe ein Problem mit der SDL 2.0-Tastatureingabe in einem Pong-ähnlichen Spiel. Wenn ich mit der linken Pfeiltaste nach links gehen möchte, wird dies von SDL_PollEvents () verarbeitet und reagiert korrekt, wenn die Taste einmal gedrückt wurde. Wenn ich jedoch die Taste gedrückt halte, erhalte ich eine kurze Verzögerung (solange die Windows-Taste wiederholt wird), bevor ich mich fortlaufend bewege.

Hier ist die Funktionsverarbeitung von Ereignissen:

void Event::PlayerEvent (Player &player)
{
    while (SDL_PollEvent (&mainEvent))
    {
        switch (mainEvent.type)
        {
            case SDL_KEYDOWN :
                switch (mainEvent.key.keysym.sym)
                {
                    case SDLK_ESCAPE :
                        gameRunning = false;
                        break;
                    case SDLK_LEFT :
                        player.moving = player.left;
                        break;
                    case SDLK_RIGHT :
                        player.moving = player.right;
                }
                break;
            case SDL_QUIT :
                gameRunning = false;
        }
    }
}

EDIT: Schließlich konnte ich dieses Problem beheben, indem ich SystemParametersInfo (SPI_SETKEYBOARDDELAY, 0, 0, 0) am Anfang des Programms und SystemParametersInfo (SPI_SETKEYBOARDDELAY, 1, 0, 0) am Ende aufrief, um zum Standardschlüssel zurückzukehren Wiederholungsverzögerung

Antworten auf die Frage(6)

Ihre Antwort auf die Frage