Controller.cpp 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #include "client/input/Controller.h"
  2. Controller::Controller(Buttons& b)
  3. : buttons(b), left(GLFW_KEY_A, "Left"), right(GLFW_KEY_D, "Right"),
  4. up(GLFW_KEY_W, "X"), down(GLFW_KEY_S, "Y"), jump(GLFW_KEY_SPACE, "L"),
  5. sneak(GLFW_KEY_LEFT_SHIFT, "R"), camLeft(GLFW_KEY_LEFT, "Start"),
  6. camRight(GLFW_KEY_RIGHT, "Select"), camUp(GLFW_KEY_UP, "Left"),
  7. camDown(GLFW_KEY_DOWN, "Right"),
  8. leftClick(GLFW_MOUSE_BUTTON_LEFT, "Left Click"),
  9. rightClick(GLFW_MOUSE_BUTTON_RIGHT, "Right Click") {
  10. b.add(left);
  11. b.add(right);
  12. b.add(up);
  13. b.add(down);
  14. b.add(jump);
  15. b.add(sneak);
  16. b.add(camLeft);
  17. b.add(camRight);
  18. b.add(camUp);
  19. b.add(camDown);
  20. b.addMouse(leftClick);
  21. b.addMouse(rightClick);
  22. b.mapGamepadAxis(left, -0.5f, GLFW_GAMEPAD_AXIS_LEFT_X);
  23. b.mapGamepadAxis(right, 0.5f, GLFW_GAMEPAD_AXIS_LEFT_X);
  24. b.mapGamepadAxis(up, -0.5f, GLFW_GAMEPAD_AXIS_LEFT_Y);
  25. b.mapGamepadAxis(down, 0.5f, GLFW_GAMEPAD_AXIS_LEFT_Y);
  26. b.mapGamepadAxis(camUp, -0.5f, GLFW_GAMEPAD_AXIS_RIGHT_Y);
  27. b.mapGamepadAxis(camDown, 0.5f, GLFW_GAMEPAD_AXIS_RIGHT_Y);
  28. b.mapGamepadAxis(camLeft, -0.5f, GLFW_GAMEPAD_AXIS_RIGHT_X);
  29. b.mapGamepadAxis(camRight, 0.5f, GLFW_GAMEPAD_AXIS_RIGHT_X);
  30. }
  31. Vector2 Controller::getMouse() const {
  32. return Vector2(static_cast<float>(buttons.getMouseX()),
  33. static_cast<float>(buttons.getMouseY()));
  34. }
  35. Vector2 Controller::getMouseChange() const {
  36. return Vector2(
  37. static_cast<float>(buttons.getMouseX() - buttons.getLastMouseX()),
  38. static_cast<float>(buttons.getMouseY() - buttons.getLastMouseY()));
  39. }