|
|
|
#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);
|