There used to be a function named SDL_EnableKeyRepeat()
in SDL, but not anymore in SDL2.
I searched around in SDL2-wiki but failed to locate anything relevant.
Any ideas?
There used to be a function named SDL_EnableKeyRepeat()
in SDL, but not anymore in SDL2.
I searched around in SDL2-wiki but failed to locate anything relevant.
Any ideas?
When handling a keyboard event, just filter out any events that are repeat events, i.e. check the repeat
field of the SDL_KeyboardEvent
of the SDL_Event
union.
For example:
SDL_Event event;
while (SDL_PollEvent(&event)) {
if (event.type == SDL_QUIT) {
quit = true;
}
if (event.type == SDL_KEYDOWN && event.key.repeat == 0) {
if (event.key.keysym.sym == SDLK_d)
debug = debug ? false : true;
// ... handle other keys
}
}
You may be better served by the SDL_GetKeyboardState function which tells you all the keys that are pressed. You can also just check the repeat
flag in the event and ignore when repeat is true.
You can do it yourself, by adding your "down" key into a list and removing them when you catch a KEY_UP and at each frames you can iterate your list to know which key is still down.