Obsługa strzałek .
Ostatnio zmodyfikowano 2013-04-09 18:03
grytyn Temat założony przez niniejszego użytkownika |
Obsługa strzałek . » 2013-04-06 13:33:54 Witam ! Chodzę do szkoły gimnazjalnej i nauczyciel od informatyki polecił mi zrobić coś w stylu gry graficznej consolowej . Ma ona polegać na tym że klikam strzałkę w góre i przykładowo x przemieszcza się do góry . Problem polega na tym że nie wiem jak obsłużyć strzałki . Kod na obsługę strzałek niby ma wygladać tak : switch( znak ) { case 224: znak = getch(); switch( znak ) { case 72: gora(); break; case 80: dol(); break; case 75: lewo(); break; case 77: prawo(); break; } } Czy to poprawny kod ? Są jakieś wyjątki żeby go nie stosować ? Z góry dziękuje za pomoc :) |
|
mactec |
» 2013-04-06 13:40:03 Na Co Ci to? To jest poprawne i działa znak = getch(); switch( znak ) { case 72: gora(); break; case 80: dol(); break; case 75: lewo(); break; case 77: prawo(); break; } |
|
grytyn Temat założony przez niniejszego użytkownika |
» 2013-04-06 13:43:49 wielkie dzięki za pomoc :D |
|
pekfos |
» 2013-04-06 14:15:53 Tak. To jest poprawne i działa |
Mylisz się. |
|
mactec |
» 2013-04-06 14:21:04 Dlaczego? Ten kod działa, co jest niby w nim nie poprawnego/nie działającego? |
|
pekfos |
» 2013-04-06 14:23:21 Brak obsługi kodu 224. Przykładzik: #include <iostream> #include <conio.h>
int main() { while( true ) { std::cout << "petla" << std::endl; switch( getch() ) { case 72: std::cout << "gora" << std::endl; break; case 80: std::cout << "dol" << std::endl; break; case 75: std::cout << "lewo" << std::endl; break; case 77: std::cout << "prawo" << std::endl; break; default: std::cout << "ERROR!" << std::endl; } } } |
|
mactec |
» 2013-04-06 14:36:39 No tak faktycznie, ale nie zawsze jest potrzeba sprawdzania tego. W końcu jak on chce sprawdzać tylko strzałki, i nie będzie robił czegoś w stylu sprawdzania czy został wciśnięty prawidłowy klawisz i informowania o tym użytkownika to wtedy jest ok. |
|
pekfos |
» 2013-04-06 14:50:54 ale nie zawsze jest potrzeba sprawdzania tego. |
Potrafisz podać przykład (gdy niesprawdzanie jest lepsze od sprawdzania)? W końcu jak on chce sprawdzać tylko strzałki, i nie będzie robił czegoś w stylu sprawdzania czy został wciśnięty prawidłowy klawisz |
To nie ma nic do rzeczy. Nie jest ok.. Wtedy sprawdzanie jednego klawisza jest rozciągnięte na 2 obiegi pętli (i operacje w pętli, takie jak wyświetlanie są wykonywane dwukrotnie). To ma być ok? |
|
« 1 » 2 3 |