Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?
Autor: Piotr Szawdyński
Biblioteki C++

Bezpośredni dostęp do klawiatury, myszy i joysticka

[lekcja] Rozdział 4. W niniejszym rozdziale opisano bezpośredni dostęp do urządzeń takich jak: klawiatura, mysz i joystick.
Jeżeli znasz z autopsji inne biblioteki graficzne, takie jak np. SDL czy Allegro to zapewne poprzedni rozdział pozostawił po sobie niedosyt na temat obsługi klawiatury i myszy. Jeżeli tak jest to po przeczytaniu tego rozdziału powinieneś poczuć się usatysfakcjonowany możliwościami obsługi wspomnianych urządzeń przez bibliotekę SFML.

Bezpośredni dostęp do urządzeń

SFML umożliwia nie tylko obsługę klawiatury, myszy i joysticka poprzez obsługę zdarzeń ale również umożliwia uzyskanie bardzo łatwego bezpośredniego dostępu do nich. Wspomniany bezpośredni dostęp można uzyskać poprzez metodę GetInput należącą do dobrze nam już znanej klasy sf::Window. Metoda GetInput zwraca referencję na niezmienny obiekt typu sf::Input z którego możemy pobierać interesujące nas informacje na temat stanu urządzeń takich jak klawiatura, mysz czy też joystick. Skoro wiemy już co w trawie piszczy to umieśćmy poniższą linijkę w naszym kodzie:
C/C++
const sf::Input & wejscie = oknoAplikacji.GetInput();
Teraz za pomocą obiektu wejscie będziemy mogli odczytywać bezpośrednio informacje o stanie urządzeń wejściowych takich jak klawiatura, mysz i joystick. Do tego celu mamy do dyspozycji następujące metody klasy sf::Input:
  • IsKeyDown - sprawdza czy podany klawisz jest wciśnięty. Typ zwracanej wartości: bool. Przykład:
    C/C++
    wejscie.IsKeyDown( sf::Key::Left );
  • IsMouseButtonDown - sprawdza czy podany przycisk myszy jest wciśnięty. Typ zwracanej wartości: bool. Przykład:
    C/C++
    wejscie.IsMouseButtonDown( sf::Mouse::Right );
  • IsJoystickButtonDown - sprawdza czy podany przycisk joysticka jest wciśnięty. Typ zwracanej wartości: bool. Przykład:
    C/C++
    wejscie.IsJoystickButtonDown( 0, 1 );
  • GetMouseX - zwraca położenie myszy względem okna w osi X. Typ zwracanej wartości: unsigned int. Przykład:
    C/C++
    wejscie.GetMouseX();
  • GetMouseY - zwraca położenie myszy względem okna w osi Y. Typ zwracanej wartości: unsigned int. Przykład:
    C/C++
    wejscie.GetMouseY();
  • GetJoystickAxis - zwraca informacje o położeniu dla joysticka. W zależności od wartości przekazanej jako drugi argument do niniejszej metody zwracane jest położenie w osi X, Y bądź położenie POV. Typ zwracanej wartości: float. Przykłady:
    C/C++
    wejscie.GetJoystickAxis( 1, sf::Joy::AxisX );
    wejscie.GetJoystickAxis( 1, sf::Joy::AxisY );
    wejscie.GetJoystickAxis( 1, sf::Joy::AxisPOV );

Wnioski

Jak widać bezpośredni dostęp do urządzeń typu klawiatura, mysz jak i joystick jest bardzo prosty w bibliotece SFML. Pamiętaj, że bezpośredni dostęp do urządzeń jest idealnym rozwiązaniem do realizacji sterowania w grach.
Poprzedni dokument Następny dokument
Obsługa zdarzeń - klawiatura, mysz i inne Okno renderujące grafikę