keyboard-mouse-gamepad

Klawiatura, mysz i joystick

Wstęp


W tej części poradnika zajmiemy się omówieniem instrukcji warunkowych klawiatury, myszy i joysticka. Przydają się one do sprawdzenia, czy określony klawisz jest wciąż wciśnięty.

 

Klawiatura


Klasa, która daje nam dostęp do klawiszy na klawiaturze to sf::Keyboard. Ta klasa zawiera tylko jedną metodę: isKeyPressed, która sprawdza czy klawisz jest wciśnięty, jeżeli tak to zwraca true, w przeciwnym razie false. Jako argument przyjmuje klawisz, który ma zostać sprawdzony. Co trzeba zaznaczyć to fakt, że to metoda sprawdza bezpośrednio stan klawisza, czyli działa nawet wtedy gdy okno jest niekatywne.

 

Mysz


Klasą odpowiedzialną za obsługę myszy jest sf::Mouse. Podobnie jak w przypadku klawiatury mysz posiada instrukcję warunkową wciśnięcia klawiszy.

Przyciski myszy zawarte są w enum sf::Mouse::Button.

Możesz także pobrać pozycję myszy względem pulpitu lub okna gry.

Analogicznie można też ustawić pozycję myszy:

 

Joystick


Klasa, która daje nam dostęp do obsługi pada to sf::Joystick. Tak jak reszta klas w tym tutorialu posiada wyłącznie funkcje statyczne (z przedrostkiem static).

Każdy Joystick posida swoje id numerowane od 0-7 (bo SFML obsługuje maksymalnie 8 padów). Pierwszy argument każdej metody sf:Joysticks to jego id.

Możesz sprawdzić, czy Joystick o określonym id jest podłączony w następujący sposób:

Można także sprawdzić niektóre parametry joysticków:

Osie są zdefiniowane w enum sf::Joystick::Axis. A przyciski są ponumerowane od 0 do 31.

W ten sposób możesz sprawdzić czy jakiś klawisz jest wciśnięty, a także możesz sprawdzić pozycję osi:

Oryginalny artykuł


  • Kamil

    Czy jest jakaś metoda, którą można sprawdzić czy na danym obiekcie jest kursor, bo szukam w dokumentacji i znaleźć nie mogę?

    • Nie ma, sam musisz napisać taką funkcję (wykrywanie kolizji pomiędzy punktem a boxem)

      • Kamil

        Dzięki za odpowiedź. ;]