Allegro wciskanie/puszczanie klawisza.
Ostatnio zmodyfikowano 2012-01-24 19:07
unimator Temat założony przez niniejszego użytkownika |
Allegro wciskanie/puszczanie klawisza. » 2012-01-24 18:53:33 Witam Próbuje zrobić Menu, po którym to użytkownik porusza się za pomocą KEY UP/DOWN. Samo "wyciąganie" klawisza z bufora wygląda tak: while( true ) { if(( key[ KEY_UP ] ) ) { if(( wsk_lvl > 0 ) ) { } } }
Problem jest taki, że jak wcisnę i puszczę UP to pętla zdąży się wykonać np. z 10 razy, bo czas jaki trzymam UP (są to setne części sekundy) jest równy tym 10 obrotom pętli. Jeśli ciężko to zrozumieć, to podobny efekt otrzymamy przytrzymując Enter - kursor przeskoczy nam o kilka linijek w dół, a nie o jedną. U mnie wystarczy krócej przytrzymać przycisk. Kombinowałem zrobić coś samemu (dodając to co jest w komentarzu) ale ten if w komentarzu nie spełnia się, bo w buforze są nadal jakieś znaki. Próbowałem też pomóc sobie funkcję clear_keybuf() (czyści ona bufor), ale gdzie bym jej nie wsadził, nie pomagało. Jeśli macie jakieś pomysły, jak to zrobić, by po wciśnięciu klawisza program rejestrował też jego odciśnięcie (bo to o to chodzi, chyba) to proszę byście się ze mną nimi podzielili :) |
|
pekfos |
» 2012-01-24 19:00:43 key[X] nie ma nic wspólnego z buforem :P bool tmp = true;
if( key[ X ] && tmp ) { tmp = false; } if( !key[ X ] ) tmp = true; |
|
unimator Temat założony przez niniejszego użytkownika |
» 2012-01-24 19:07:13 A to teraz wszystko jasne, ja byłem pewny, że to wina bufora :D Dzięki, pomogło. |
|
« 1 » |