[SDL]Jak wykryc podwójne wciśnięcia klawisza?[SDL]

0

Hej
A wiec postac porusza sie po wcisnieciu strzalki w prawo i jesli w przeciagu kolejnej sekundy klawisz strzalki zostal 2 razy wcisniety to chcialbym aby postac zaczela biec. Moim problemem jest wlasnie wykrycie podwojnego wcisniecia ;/. Najlepsze co do tej pory wymyslilem to to:

size_t last_ticks = SDL_GetTicks();
bool run = false;
bool run_start = false;

if( key[ SDLK_RIGHT ] ) Walk();

size_t ticks = SDL_GetTicks();
double delta_time =( ticks - last_ticks ) / 1000.0;
if( delta_time > 1 ) {
    last_ticks = ticks;
    if( key[ SDLK_RIGHT ] && SDL_RELEASED ) { run = true; }
    if( key[ SDLK_RIGHT ] && SDL_PRESSED && run == true ) { run_start = true; }
    if( SDL_RELEASED ) run_start = false;
   
}
if( run_start == true ) Run();

ale i tak nie dziala, Postac po 2 kliknieciach strzalki nie zaczyna biec tylko nadal jest wykonywana funkcja Walk().
Tak wiec bylbym bardzo wdzieczny za pokazanie lub opisanie sposobu na wykrycie tych podwojnych wcisniec :P

0

zapisuj sobie czas ostatnich dwóch naciśnięć strzałki w prawo jako t1 i t2 , t1 < t2 (naciśnięcie to zmiana stanu z key[SDLK_RIGHT] == false na key[SDLK_RIGHT] == true. Jeżeli now()-t1 < 1s && !run to ustaw run = true.

1 użytkowników online, w tym zalogowanych: 0, gości: 1