[ Allegro5 ] Czyszczenie bufora klawiatury.
Ostatnio zmodyfikowano 2021-11-26 15:48
marianekA Temat założony przez niniejszego użytkownika |
[ Allegro5 ] Czyszczenie bufora klawiatury. » 2021-11-23 18:07:07 Koledzy, przepisałem moją starą grę napisaną w Allegro4 gdzie używałem funkcji clear_keybuf() i nie potrafię poradzić sobie z tym w Allegro5. Jakaś podpowiedź mile widziana. |
|
pekfos |
» 2021-11-23 19:41:19 Potrzebujesz zamiennika, czy chodzi tylko o to że takie wywołanie było w poprzedniej wersji? Jeśli używałeś bufora klawiatury, to czym zastąpiłeś readkey()? |
|
marianekA Temat założony przez niniejszego użytkownika |
» 2021-11-23 20:52:26 Tak w skrócie: ALLEGRO_EVENT ev; ALLEGRO_EVENT_QUEUE * event_queue = al_create_event_queue(); al_register_event_source( event_queue, al_get_keyboard_event_source() ); int klawisz; al_get_next_event( event_queue, & ev ); klawisz = ev.keyboard.unichar;
|
|
pekfos |
» 2021-11-23 21:31:46 Ale w jakim celu było clear_keybuf() w starym kodzie? Używałeś blokującego readkey()? I co znaczy "w skrócie"? al_get_next_event() nie czeka na zdarzenie, więc musisz sprawdzić zwracaną wartość. |
|
marianekA Temat założony przez niniejszego użytkownika |
» 2021-11-24 09:38:31 Nie używałem readkey() tylko ureadkey().
Bez tego: al_get_next_event( event_queue, & ev ); nie odczytuje mi kodu wciśniętego klawisza klawisz = ev.keyboard.unichar;
... a chodzi mi tylko o możliwość czyszczenia buforu klawiatury z poziomu Allegro5. |
|
pekfos |
» 2021-11-24 17:39:32 Bez tego: al_get_next_event( event_queue, & ev ); nie odczytuje mi kodu wciśniętego klawisza klawisz = ev.keyboard.unichar; Napisałem że musisz sprawdzać zwracaną wartość z tej funkcji. Take the next event out of the event queue specified, and copy the contents into ret_event, returning true. The original event will be removed from the queue. If the event queue is empty, return false and the contents of ret_event are unspecified. https://www.allegro.cc/manual/5/al_get_next_eventJeśli faktycznie masz osobną kolejkę tylko na zdarzenia z klawiatury, to pewnie zamiennikiem ureadkey() będzie al_wait_for_event(), a clear_keybuf() możesz zaimplementować jako wywoływanie al_get_next_event() w pętli aż do opróżnienia kolejki, ignorując zdarzenia które tam były. |
|
marianekA Temat założony przez niniejszego użytkownika |
» 2021-11-24 20:37:51 No wreszcie coś konkretnego pekfos... nie wszystko rozumiem należycie a to z braku znajomości angielskiego, w moim wieku już za późno na jego naukę. Jutro się za to zabiorę bo dziś trochę kiepsko się czuję. Miłego wieczoru i jeszcze raz dziękuję. |
|
marianekA Temat założony przez niniejszego użytkownika |
» 2021-11-26 15:48:55 Już wszystko OK. Dziękuję za pomoc. |
|
« 1 » |