Guest User

Untitled

a guest
Oct 21st, 2017
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.64 KB | None | 0 0
  1. #include "input.h"
  2.  
  3. std::vector<bool> Input::m_currentKeyboardKeyState(sf::Keyboard::KeyCount, false);
  4. std::vector<bool> Input::m_previousKeyboardKeyState(sf::Keyboard::KeyCount, false);
  5.  
  6. std::vector<bool> Input::m_currentMouseButtonState(sf::Mouse::ButtonCount, false);
  7. std::vector<bool> Input::m_previousMouseButtonState(sf::Mouse::ButtonCount, false);
  8.  
  9. sf::Vector2f Input::m_currentMousePosition(0, 0);
  10. sf::Vector2f Input::m_previousMousePosition(0, 0);
  11.  
  12. void Input::update()
  13. {
  14. m_previousKeyboardKeyState = m_currentKeyboardKeyState;
  15. m_previousMouseButtonState = m_currentMouseButtonState;
  16. m_previousMousePosition = m_currentMousePosition;
  17. }
  18.  
  19. void Input::handleEvent(sf::Event & e)
  20. {
  21. switch (e.type) {
  22. case sf::Event::EventType::KeyPressed:
  23. if (e.key.code != sf::Keyboard::Key::Unknown) {
  24. Input::m_currentKeyboardKeyState[e.key.code] = true;
  25. }
  26. break;
  27. case sf::Event::EventType::KeyReleased:
  28. if (e.key.code != sf::Keyboard::Key::Unknown) {
  29. Input::m_currentKeyboardKeyState[e.key.code] = false;
  30. }
  31. break;
  32. case sf::Event::EventType::MouseButtonPressed:
  33. Input::m_currentMouseButtonState[e.mouseButton.button] = true;
  34. break;
  35. case sf::Event::EventType::MouseButtonReleased:
  36. Input::m_currentMouseButtonState[e.mouseButton.button] = false;
  37. break;
  38. case sf::Event::EventType::MouseMoved:
  39. Input::m_currentMousePosition = sf::Vector2f(static_cast<float>(e.mouseMove.x), static_cast<float>(e.mouseMove.y));
  40. break;
  41. }
  42. }
  43.  
  44. bool Input::isKeyDown(const sf::Keyboard::Key & key)
  45. {
  46. if (key < 0) {
  47. return false;
  48. }
  49. return m_currentKeyboardKeyState[key];
  50. }
  51.  
  52. bool Input::isKeyPressed(const sf::Keyboard::Key & key)
  53. {
  54. if (key < 0) {
  55. return false;
  56. }
  57. return m_currentKeyboardKeyState[key] && !m_previousKeyboardKeyState[key];
  58. }
  59.  
  60. bool Input::isKeyReleased(const sf::Keyboard::Key & key)
  61. {
  62. if (key < 0) {
  63. return false;
  64. }
  65. return !m_currentKeyboardKeyState[key] && m_previousKeyboardKeyState[key];
  66. }
  67.  
  68. bool Input::isMouseButtonDown(const sf::Mouse::Button & key)
  69. {
  70. if (key < 0) {
  71. return false;
  72. }
  73. return m_currentMouseButtonState[key];
  74. }
  75.  
  76. bool Input::isMouseButtonPressed(const sf::Mouse::Button & key)
  77. {
  78. if (key < 0) {
  79. return false;
  80. }
  81. return m_currentMouseButtonState[key] && !m_previousMouseButtonState[key];
  82. }
  83.  
  84. bool Input::isMouseButtonReleased(const sf::Mouse::Button & key)
  85. {
  86. if (key < 0) {
  87. return false;
  88. }
  89. return !m_currentMouseButtonState[key] && m_previousMouseButtonState[key];
  90. }
  91.  
  92. sf::Vector2f Input::getCurrentMousePosition()
  93. {
  94. return m_currentMousePosition;
  95. }
  96.  
  97. sf::Vector2f Input::getPreviousMousePosition()
  98. {
  99. return m_previousMousePosition;
  100. }
  101.  
  102. sf::Vector2f Input::getDeltaMousePosition()
  103. {
  104. return m_currentMousePosition - m_previousMousePosition;
  105. }
Add Comment
Please, Sign In to add comment