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