[C++] Napewno nie Logo
Ostatnio zmodyfikowano 2015-04-04 11:03
C-Objective Temat założony przez niniejszego użytkownika |
[C++] Napewno nie Logo » 2015-04-04 10:50:15 Witam. Napisałem coś do poruszania obiektem: #include <iostream> #include <windows.h> #include <conio.h> void gotoxy( int x, int y ); void gotoxy( int x, int y ) { COORD c; c.X = x; c.Y = y; SetConsoleCursorPosition( GetStdHandle( STD_OUTPUT_HANDLE ), c ); } using namespace std; int main( int argc, char ** argv ) { int defval1[ 3 ] = { 29, 30, 30 }; int defval2[ 3 ] = { 18, 17, 19 }; int a = 3; rys: gotoxy( 29, 20 ); cout << "***"; gotoxy( 30, 19 ); cout << "*"; gotoxy( 30, 21 ); cout << "*"; bool koniec = false; while( koniec == false ) { unsigned char znak = getch(); switch( znak ) { case 0: case 224: znak = getch(); switch( znak ) { case 72: system( "CLS" ); defval2[ 0 ] --; defval2[ 1 ] --; defval2[ 2 ] --; gotoxy( defval1[ 0 ], defval2[ 0 ] ); cout << "***"; gotoxy( defval1[ 1 ], defval2[ 1 ] ); cout << "*"; gotoxy( defval1[ 2 ], defval2[ 2 ] ); cout << "*"; break; case 80: system( "CLS" ); defval2[ 0 ] ++; defval2[ 1 ] ++; defval2[ 2 ] ++; gotoxy( defval1[ 0 ], defval2[ 0 ] ); cout << "***"; gotoxy( defval1[ 1 ], defval2[ 1 ] ); cout << "*"; gotoxy( defval1[ 2 ], defval2[ 2 ] ); cout << "*"; break; case 75: system( "CLS" ); defval1[ 0 ] --; defval1[ 1 ] --; defval1[ 2 ] --; gotoxy( defval1[ 0 ], defval2[ 0 ] ); cout << "***"; gotoxy( defval1[ 1 ], defval2[ 1 ] ); cout << "*"; gotoxy( defval1[ 2 ], defval2[ 2 ] ); cout << "*"; break; case 77: system( "CLS" ); defval1[ 0 ] ++; defval1[ 1 ] ++; defval1[ 2 ] ++; gotoxy( defval1[ 0 ], defval2[ 0 ] ); cout << "***"; gotoxy( defval1[ 1 ], defval2[ 1 ] ); cout << "*"; gotoxy( defval1[ 2 ], defval2[ 2 ] ); cout << "*"; break; } znak = 0; break; case 13: system( "CLS" ); goto rys; break; case 27: koniec = true; break; } } return 0; }
I chcę, aby za obiektem pozostawał ślad, wyłączanie i włączanie tego śladu to klawisze 'p' i 'o'. Ktoś ma pomysł? Goto się przydaje :D (czasami) |
|
Glazus |
» 2015-04-04 11:00:40 Możesz na przykład stworzyć sobie std::vector i w nim przechowywać "ślad". A możliwe, że można i "lepiej/szybciej". Tym niemniej mnie zastanawia ta konstrukcja: void gotoxy( int x, int y ); void gotoxy( int x, int y ) { COORD c; c.X = x; c.Y = y; SetConsoleCursorPosition( GetStdHandle( STD_OUTPUT_HANDLE ), c ); } Gdzie tu logika gdzie tu sens? Reszty kodu nie przeglądałem specjalnie, więc nie wiem czy więcej takich kwiatków jest. |
|
C-Objective Temat założony przez niniejszego użytkownika |
» 2015-04-04 11:03:47 Hah, a no fakt :) Ale błędu nie wywala. Tu jest właśnie ciężko bo resetowanie działa no nie do końca tak, jak ja sobie myślałem. Z resztą, uruchom to zobaczysz :) |
|
« 1 » |