klawiatura - nCurses
Ostatnio zmodyfikowano 2014-01-28 11:38
oputyk Temat założony przez niniejszego użytkownika |
klawiatura - nCurses » 2014-01-27 16:46:39 Witam wszystkich. Mam problem, a mianowicie kiedy naciskam jakiś klawisz z klawiatury, to program mi się zawiesza... Oto kod: CW okno; okno.ColorSet( 5, 2 ); sf::Vector2f pos( 0, 0 ); sf::Clock c; unsigned int u = 0; while( true ) { okno.Clear(); if( c.getElapsedTime().asSeconds() > u ) { pos.y++; u++; } okno.Draw( '$', pos.x, pos.y ); okno.Display(); }
Problem polega na tym, że kiedy nacisnę coś z klawiatury, to wtedy znak już się nie porusza. Jeszcze raz powtórzę, że wywołuję makrodefinicję keypad( stdscr, true ) . Z góry dzięki za pomoc. |
|
oputyk Temat założony przez niniejszego użytkownika |
» 2014-01-27 17:36:18 Nie jestem pewien, ale to chyba wina bufora, bo kiedy kod wygląda tak: CW okno; okno.ColorSet( 5, 2 ); sf::Vector2f pos( 0, 0 ); sf::Clock c; unsigned int u = 1; while( true ) { okno.Clear(); if( c.getElapsedTime().asSeconds() > u ) { pos.y++; u++; getch(); } okno.Draw( '$', pos.x, pos.y ); okno.Display(); } return 0;
To wtedy gdy nacisnę przycisk ok. co sekundę, to jest dobrze, ale gdy naciskam więcej klawiszy to już mi się zawiesza, a po jakimś czasie getch() wszystko zbiera i znów mi się wszystko wyświetla. Ma ktoś jakiś pomysł na ten błąd? Może dałoby się jakoś wyczyścić bufor... |
|
leon_w |
» 2014-01-27 20:35:41 Ja do czyszczenia buforu używałem czegoś takiego: while( kbhit() ) getch(); ale nie wiem czy w Twoim przypadku się sprawdzi. |
|
oputyk Temat założony przez niniejszego użytkownika |
» 2014-01-28 11:38:22 Ok, dzięki. Zamykam. |
|
« 1 » |