[SDL, C++] Poruszanie w 4 kierunkach
Ostatnio zmodyfikowano 2011-08-25 21:36
dudero Temat założony przez niniejszego użytkownika |
[SDL, C++] Poruszanie w 4 kierunkach » 2011-08-24 18:56:32 Mam taki problem: if( event.type == SDL_KEYDOWN ) { switch( event.key.keysym.sym ) { case SDLK_UP: yVel -= SQUARE_H / 2; break; case SDLK_DOWN: yVel += SQUARE_H / 2; break; case SDLK_RIGHT: xVel += SQUARE_W / 2; break; case SDLK_LEFT: xVel -= SQUARE_W / 2; break; } } Jeśli wprawię w ruch swój kwadrat np. w prawo, a następnie w dół - obiekt porusza się ukośnie. Chciałbym ograniczyć ruch obiektu tylko do 4 zwrotów (prawo, lewo góra, dół). |
|
m4tx |
» 2011-08-24 19:02:11 Może coś takiego? if( event.type == SDL_KEYDOWN ) { switch( event.key.keysym.sym ) { case SDLK_UP: yVel -= SQUARE_H / 2; xVel = 0; break; case SDLK_DOWN: yVel += SQUARE_H / 2; xVel = 0; break; } } |
|
dudero Temat założony przez niniejszego użytkownika |
» 2011-08-24 19:08:11 A jeszcze jedno pytanko, teraz jest ok, ale jak obiekt "leci" w prawo i nacisnę lewy klawisz to się zatrzymuję. Jest jakiś prosty sposób aby zignorować akcję o przeciwnym zwrocie ? |
|
m4tx |
» 2011-08-24 19:17:00 case SDLK_UP: if( yVel > 0 ) { yVel -= SQUARE_H / 2; xVel = 0; } break; |
|
dudero Temat założony przez niniejszego użytkownika |
» 2011-08-24 19:22:58 tak chyba nie da rady, przy deklaracji zmiennych mam je wyzerowane więc nie ruszę do góry.
|
|
kamillo121 |
» 2011-08-25 21:36:03 Użyj dodatkowej zmiennej, która będzie oznaczała zwrot wektora. |
|
« 1 » |