Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[SDL, C++] Poruszanie w 4 kierunkach

Ostatnio zmodyfikowano 2011-08-25 21:36
Autor Wiadomość
dudero
Temat założony przez niniejszego użytkownika
[SDL, C++] Poruszanie w 4 kierunkach
» 2011-08-24 18:56:32
Mam taki problem:
C/C++
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ół).
P-39868
m4tx
» 2011-08-24 19:02:11
Może coś takiego?

C/C++
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;
        //itd...
    }
}
P-39869
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 ?
P-39870
m4tx
» 2011-08-24 19:17:00
case SDLK_UP: if( yVel > 0 ) { yVel -= SQUARE_H / 2; xVel = 0; } break;
P-39871
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.
P-39872
kamillo121
» 2011-08-25 21:36:03
Użyj dodatkowej zmiennej, która będzie oznaczała zwrot wektora.
P-39948
« 1 »
  Strona 1 z 1