Skip to content
This repository has been archived by the owner on Jun 6, 2019. It is now read-only.
Patrick Stritch edited this page Apr 27, 2018 · 1 revision

Klasa InputManager opiera się na działaniu eventów, pozyskiwaniu z nich potrzebnych informacji i zapisywaniu ich.

Obsługa eventów w Application

while (getModule<Window>().getWindow().pollEvent(event)) {
	getModule<Input>().getManager().processEvent(event); // na początku obsługi eventów
	// reszta obsługi eventów
}
getModule<Input>().getManager().finishLogic(); // pod koniec update'u

Enumeratory

Kody

  • rat::Keyboard::*
  • rat::Mouse::*
  • rat::Scroll::*

Stany

  • rat::Unkept/Pressed/Kept/Released

Urządzenia

  • rat::Keyboard/Mouse/Scroll

Przykłady użycia

auto& man = getModule<Input>().getManager();

// równoważne z man.checkStatus(Keyboard::A, Kept) i man.getStatus(Keyboard::A) == Kept
if (man.isKept(Keyboard::A)) {
	// np. ruch postaci
}

if (man.isAnyPressed()) {
	// zapisywanie klawiszologii
	config.moveUp = man.getRecentlyPressed();
}

if (man.isTextEntered()) {
	// pozyskiwanie tekstu z klawiatury
	auto ch = man.getEnteredCharacter();
}

// mouse position from event, relative to window
auto pos = man.getMousePosition();

if (man.isPressed(Mouse::Left)) {
	// symulowanie prawego kliknięcia lewym
	man.press(Mouse::Right);
}
Clone this wiki locally