Skocz do zawartości

SDL2 keyPressed


shout

Recommended Posts

Witam!

Mój problem polega na tym, że mam klasę inputManger w której są metody : KeyPressed(int key), KeyReleased(int key), które wyglądają następująco:

bool InputManager::KeyPressed(int key)
{
    if (event.key.state == SDL_PRESSED && event.key.repeat == 0)
    {
        if (event.key.keysym.sym == key )
        {
            return true;
        }    
    }
    return false;
}

bool InputManager::KeyReleased(int key)
{
    if (event.key.state == SDL_RELEASED  && event.key.repeat == 0)
    {
        if (event.key.keysym.sym == key)
        {
            return true;
        }
    }
    return false;
}

Mam też 2 klasy, które wyświetlają obraz. W każdej z nich jest metoda Update(), która sprawdza czy przycisk jest wciśnięty (np. esc), jeśli tak zmieni obrazek z klasy1, na obrazek z klasy2.

Problem polega na tym, że gdy przytrzymam esc obrazki będą się ciągle zmieniać między sobą (22 razy dla każdej klasy). Chciałbym zrobić to w ten sposób, że gdy przycisnę i przytrzymam esc wtedy z klasy1 zmieni się na klase2 i zatrzyma, i dopiero wtedy kiedy puszczę i przycisnę ponownie zmieni się na klase1. Tutaj może filmik jak to wygląda :
Pozdrawiam

 

2017-06-09 15-58-59.mp4

Link do komentarza
Udostępnij na innych stronach

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gość
Odpowiedz...

×   Wkleiłeś zawartość bez formatowania.   Usuń formatowanie

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Utwórz nowe...