Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[Allegro4] Program wyświetlający aktualnie wciśnięty klawisz

Ostatnio zmodyfikowano 2013-05-07 20:10
Autor Wiadomość
raven_raven
Temat założony przez niniejszego użytkownika
[Allegro4] Program wyświetlający aktualnie wciśnięty klawisz
» 2013-05-07 18:45:19
Chciałem napisać prosty program, który wyświetlałby kod aktualnie wciśniętego klawisza (idealnie to w ogóle jego nazwę, ale nie umiem tego kodu przetłumaczyć na nazwę). Mam coś takiego:

C/C++
int klawisz = 0;

while( !key[ KEY_ESC ] ) {
    clear_keybuf();
    klawisz = readkey();
    clear_to_color( screen, makecol( 0, 0, 0 ) );
    textprintf( screen, font, 240, 240, makecol( 255, 255, 128 ), "Klawisz to : %d", klawisz );
}

Problem w tym, że kiedy puszczę klawisz, na ekranie wciąż wyświetlany jest komunikat o poprzednim klawiszu. Jak zrobić, by po puszczeniu klawisza komunikat znikał?
P-82367
pekfos
» 2013-05-07 19:11:03
C/C++
if( keypressed() )
     k = readkey();
else
     k = 0;
P-82371
raven_raven
Temat założony przez niniejszego użytkownika
» 2013-05-07 19:13:40
Niestety, ale to rozwiązanie skutkuje wyświetlaniem ciągle zera, tak jakby warunek keypressed nigdy nie był spełniony. Czy to nie jest jakaś niekompatybilność biblioteki z Windowsem 7 czy coś takiego?
P-82372
pekfos
» 2013-05-07 19:14:54
A próbowałeś przytrzymać klawisz?
P-82373
raven_raven
Temat założony przez niniejszego użytkownika
» 2013-05-07 19:20:20
Tak, przytrzymanie skutkuje bardzo szybkim wyświetlaniem naprzemian zera i kodu klawisza, przy czym zero dużo częściej się wybija ponad kod klawisza.
P-82375
pekfos
» 2013-05-07 19:24:13
Spróbuj użyć funkcji
poll_keyboard()
 zamiast
readkey()
 (kod z pierwszego postu).
P-82377
raven_raven
Temat założony przez niniejszego użytkownika
» 2013-05-07 19:31:10
klawisz = poll_keyboard()
? Ta funkcja zwraca 0 w przypadku pomyślnego wykonania...
P-82378
pekfos
» 2013-05-07 19:32:32
P-82379
« 1 » 2
  Strona 1 z 2 Następna strona