[ALLEGRO C++] Rozpoznanie klawiszy
Ostatnio zmodyfikowano 2013-02-18 13:01
tompibed Temat założony przez niniejszego użytkownika |
[ALLEGRO C++] Rozpoznanie klawiszy » 2013-02-18 11:05:15 Witam, mam problem z rozpoznaniem czy został naciśnięty jakiś klawisz, w wersji Allegro 4.x jest to funkcja keypressed(), lecz w Allegro 5 nie mam pojęcia co robię źle. Proszę o pomoc. nie może funkcja wyjść z pętli, a powinna gdy zostanie naciśnięty kawisz '1'. Funkcja rozpoznająca oraz wyświetlająca znak jaki został naciśnięty wygląda tak: void wczytaj() { wyraz.clear(); string::iterator iter = wyraz.begin(); int caret = 0; bool insert = true; do { while( ev.type == ALLEGRO_EVENT_KEY_DOWN ) { int unichar = ev.keyboard.unichar; char ASCII = unichar & 0xff; char scancode = unichar >> 8; if( ev.keyboard.keycode >= 1 && ev.keyboard.keycode <= 36 ) { if( insert || iter == wyraz.end() ) iter = wyraz.insert( iter, ASCII ); else wyraz.replace( caret, 1, 1, ASCII ); caret++; iter++; } else switch( scancode ) { case ALLEGRO_KEY_BACKSPACE: if( iter != wyraz.begin() ) { caret--; iter--; iter = wyraz.erase( iter ); } break; } } cout << wyraz.c_str(); } while( !ev.keyboard.keycode == 1 ); }
|
|
tompibed Temat założony przez niniejszego użytkownika |
» 2013-02-18 13:01:11 Dokładnie chodzi o tą linijkę (tak mi się wydaje przynajmniej), żeby było oczekiwanie na klawisz. while( ev.type == ALLEGRO_EVENT_KEY_DOWN ) |
|
« 1 » |