You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
99 lines
2.4 KiB
99 lines
2.4 KiB
#include "inputmanager.h" |
|
|
|
InputManager::InputManager() { |
|
|
|
} |
|
|
|
InputManager::~InputManager() { |
|
|
|
} |
|
|
|
sf::Keyboard::Key InputManager::KeyboardConfiguration(Input key) { |
|
// Left = 0, |
|
// Right, |
|
// Up, |
|
// Down, |
|
|
|
if(key == Left) return sf::Keyboard::A; |
|
if(key == Right) return sf::Keyboard::D; |
|
if(key == Up) return sf::Keyboard::W; |
|
if(key == Down) return sf::Keyboard::S; |
|
if(key == LoadMap) return sf::Keyboard::L; |
|
|
|
return sf::Keyboard::Unknown; |
|
} |
|
|
|
int InputManager::JoystickConfiguration(Input key) { |
|
// if(key == Left) return 2; |
|
// if(key == Right) return 1; |
|
// if(key == Up) return 3; |
|
// if(key == Down) return 0; |
|
|
|
return -1; |
|
} |
|
|
|
void InputManager::JoystickAxisConfiguration(Input key, sf::Joystick::Axis& axis, float& position) { |
|
if(key == Left) { |
|
axis = sf::Joystick::PovY; |
|
position = -100; |
|
} |
|
|
|
if(key == Right) { |
|
axis = sf::Joystick::PovY; |
|
position = 100; |
|
} |
|
|
|
if(key == Up) { |
|
axis = sf::Joystick::PovX; |
|
position = 100; |
|
} |
|
|
|
if(key == Down) { |
|
axis = sf::Joystick::PovX; |
|
position = -100; |
|
} |
|
} |
|
|
|
bool InputManager::IsKeyBoardPressed(sf::Keyboard::Key key) { |
|
return sf::Keyboard::isKeyPressed(key); |
|
} |
|
|
|
bool InputManager::IsJoystickPressed(unsigned int joystick, unsigned int button) { |
|
return sf::Joystick::isButtonPressed(joystick, button); |
|
} |
|
|
|
bool InputManager::IsJoystickAxis(unsigned int joystick, sf::Joystick::Axis axis, float position) { |
|
return sf::Joystick::getAxisPosition(joystick, axis) == position; |
|
} |
|
|
|
bool InputManager::IsPressed(Input key, unsigned int joystick) { |
|
sf::Keyboard::Key myKeyboardKey = KeyboardConfiguration(key); |
|
if(myKeyboardKey != sf::Keyboard::Unknown) { |
|
if(IsKeyBoardPressed(myKeyboardKey)) { |
|
return true; |
|
} |
|
} |
|
|
|
|
|
int myJoystickKey = JoystickConfiguration(key); |
|
if(myJoystickKey != -1) { |
|
if(IsJoystickPressed(joystick, myJoystickKey)) { |
|
return true; |
|
} |
|
} |
|
|
|
sf::Joystick::Axis axis; |
|
float position = 0; |
|
JoystickAxisConfiguration(key, axis, position); |
|
if(position != 0) { |
|
if(IsJoystickAxis(joystick, axis, position)) { |
|
return true; |
|
} |
|
} |
|
|
|
return false; |
|
} |
|
|
|
//bool sf::Keyboard::isKeyPressed(sf::Keyboard::Escape) |
|
//bool sf::Joystick::isButtonPressed(0, 1); |
|
//float sf::Joystick::getAxisPosition(0, sf::Joystick::Y);
|
|
|