Ruchoma kropka
Ostatnio zmodyfikowano 2014-12-07 18:17
fornakter Temat założony przez niniejszego użytkownika |
Ruchoma kropka » 2014-12-06 21:08:44 Witam. Napisałem taki kawałek kodu while( x < 20 ) { key = 0; Sleep( 500 ); system( "cls" ); gotoxy( x, y ); if( _kbhit() ) { key = _getch(); if( key ==( char ) 75 ) cout << "Lewo"; } cout << '*'; x++; }
problem mam w tym, że po naciśnięciu strzałki w lewo, napis się pojawia po jednym cyklu, a nie za kazdym razem. Mówiąc inaczej: wciskając kilka razy w jednej chwili strzałkę w lewo, napis pojawia się co drugi raz, zamiast za każdym razem. Nie wiem czemu tak się dzieje, możecie mi pomóc? |
|
pekfos |
» 2014-12-06 21:19:33 Bo strzałka w lewo daje 2 znaki, a nie jeden. Najpierw leci kod klawisza specjalnego (224). |
|
fornakter Temat założony przez niniejszego użytkownika |
» 2014-12-06 21:35:35 rozumiem, ale dalej nie wiem jak to naprawic chodzi mi o to, żeby program się nie zatrzymywał, nie czekał na klawisz, ale brał pod uwagę gdy go wcisniemy. |
|
pekfos |
» 2014-12-06 21:42:15 if(( unsigned char ) key == 224 && _kbhit() ) key = _getch(); Tak jakby to nie wynikało dokładnie z tego, co wcześniej napisałem.. |
|
fornakter Temat założony przez niniejszego użytkownika |
» 2014-12-07 08:23:16 Nie jestem aż tak dobry w programowaniu, żeby po takim zdaniu znaleźć rozwiązanie. Po wpisaniu tego kodu nie wyświetla żadnych błędów, ale też program nie reaguje na żaden z klawiszy. |
|
pekfos |
» 2014-12-07 10:27:17 Podaj kod. |
|
fornakter Temat założony przez niniejszego użytkownika |
» 2014-12-07 10:42:05 { int key; while( x < 20 ) { key = 0; Sleep( 500 ); system( "cls" ); gotoxy( x, y ); if(( unsigned char ) key == 224 && _kbhit() ) { key = _getch(); if( key ==( char ) 75 ) cout << "Lewo"; } cout << '*'; x++; } _getch(); }
To jest, że tak powiem aktualny kod. Kombinowałem ale nie załapał program w żadnym z moich przestawień/zmian[/code] |
|
pekfos |
» 2014-12-07 11:19:15 if(( unsigned char ) key == 224 && _kbhit() ) { key = _getch(); if( key ==( char ) 75 ) cout << "Lewo"; }
|
Prędzej tak: key = _getch(); if(( unsigned char ) key == 224 && _kbhit() ) key = _getch();
if( key ==( char ) 75 ) cout << "Lewo"; Gdzie podany wcześniej przeze mnie kod jest tylko wstawiony do pierwszego programu z tematu. key = 0;
if(( unsigned char ) key == 224 )
|
To nie miało za wiele sensu. |
|
« 1 » 2 |